public static MetadataFactory helpParse(String ddl, String model) { MetadataFactory mf = new MetadataFactory("x", 1, model, getDataTypes(), new Properties(), null); QueryParser.getQueryParser().parseDDL(mf, ddl); return mf; }
public static Database helpParse(String ddl) { return helpParse(ddl, Mode.ANY); }
@Test(expected=MetadataException.class) public void testInsteadOfTriggerNoView() throws Exception { String ddl = "CREATE TRIGGER ON G1 INSTEAD OF INSERT AS " + "FOR EACH ROW \n" + "BEGIN ATOMIC \n" + "insert into g1 (e1, e2) values (1, 'trig');\n" + "END;" + "CREATE View G2( e1 integer, e2 varchar) AS select * from foo;"; helpParse(ddl, "model"); }
@Test(expected=MetadataException.class) public void testWrongPrimarykey() throws Exception { QueryParser parser = new QueryParser(); String ddl = "CREATE FOREIGN TABLE G1( e1 integer, e2 varchar, PRIMARY KEY (e3))"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); }
@Test(expected=MetadataException.class) public void testCreateDomainAlreadyExists() throws Exception { String ddl = "CREATE DATABASE FOO VERSION '2.0.0'; USE DATABASE FOO VERSION '2.0.0';" + "CREATE DOMAIN \"INTEGER\" AS string(4000)"; helpParse(ddl); }
@Test public void testRenameTable() throws Exception { QueryParser parser = new QueryParser(); String ddl = "CREATE FOREIGN TABLE G1( e1 integer auto_increment primary key, e2 varchar);" + "ALTER TABLE G1 RENAME TO G2"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); }
@Test(expected=org.teiid.metadata.ParseException.class) public void testCreateInvalidDomain() throws Exception { String ddl = "CREATE DATABASE FOO VERSION '2.0.0'; USE DATABASE FOO VERSION '2.0.0';" + "CREATE DOMAIN foo.bar AS integer not null;"; helpParse(ddl); }
@Test(expected=MetadataException.class) public void testReservedNamespaceURIWrong() throws Exception { QueryParser parser = new QueryParser(); String ddl = "set namespace 'http://www.teiid.org/translator/salesforce/2013' AS teiid_sf"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); assertTrue(mf.getNamespaces().keySet().contains("teiid_sf")); assertEquals("http://www.teiid.org/translator/salesforce/2012", mf.getNamespaces().get("teiid_sf")); }
@Test(expected=MetadataException.class) public void testDDLOutOfSequence() throws Exception { String ddl = "CREATE DATABASE FOO VERSION '2.0.0'; USE DATABASE FOO VERSION '2.0.0';" + "CREATE SCHEMA S1; SET SCHEMA S1;" + "CREATE VIEW X (y string) as select 'a';" + "CREATE SCHEMA S2;"; helpParse(ddl, Mode.DATABASE_STRUCTURE); }
@Test public void testNamespace() throws Exception { QueryParser parser = new QueryParser(); String ddl = "set namespace 'http://teiid.org' AS teiid"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); assertTrue(mf.getNamespaces().keySet().contains("teiid")); assertEquals("http://teiid.org", mf.getNamespaces().get("teiid")); }
@Test() public void testDuplicateFunctions2() throws Exception { String ddl = "CREATE FUNCTION SourceFunc() RETURNS string; CREATE FUNCTION SourceFunc(param string) RETURNS string"; helpParse(ddl, "model"); }
@Test(expected=MetadataException.class) public void testReservedNamespacePrefixMismatch() throws Exception { QueryParser parser = new QueryParser(); String ddl = "set namespace 'http://www.teiid.org/translator/salesforce/2012' AS teiid_foo"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); assertTrue(mf.getNamespaces().keySet().contains("teiid_foo")); assertEquals("http://www.teiid.org/translator/salesforce/2012", mf.getNamespaces().get("teiid_foo")); }
@Test(expected=org.teiid.metadata.ParseException.class) public void testDuplicateFunctions() throws Exception { String ddl = "CREATE FUNCTION SourceFunc() RETURNS integer; CREATE FUNCTION SourceFunc() RETURNS string"; helpParse(ddl, "model"); }
@Test(expected=MetadataException.class) public void testDuplicatePrimarykey() throws Exception { QueryParser parser = new QueryParser(); String ddl = "CREATE FOREIGN TABLE G1( e1 integer primary key, e2 varchar primary key)"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); }
@Test(expected=org.teiid.metadata.ParseException.class) public void testDuplicateFunctions1() throws Exception { String ddl = "CREATE FUNCTION SourceFunc() RETURNS string OPTIONS (UUID 'a'); CREATE FUNCTION SourceFunc1() RETURNS string OPTIONS (UUID 'a')"; helpParse(ddl, "model"); }
@Test public void testRenameView() throws Exception { QueryParser parser = new QueryParser(); MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "VM1", getDataTypes(), new Properties(), null); parser.parseDDL(mf,"CREATE VIEW V1 AS SELECT * FROM PM1.G1;ALTER VIEW V1 RENAME TO V2"); mf.mergeInto(mds); }
@Test(expected=org.teiid.metadata.ParseException.class) public void testFunctionDefault() throws Exception { String ddl = "CREATE FUNCTION SourceFunc(param string default 'a') RETURNS string"; helpParse(ddl, "model"); }
@Test public void testAutoIncrementPrimarykey() throws Exception { QueryParser parser = new QueryParser(); String ddl = "CREATE FOREIGN TABLE G1( e1 integer auto_increment primary key, e2 varchar)"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); }
@Test(expected=org.teiid.metadata.ParseException.class) public void testCreateInvalidQualifiedName() throws Exception { String ddl = "CREATE DATABASE FOO VERSION '2.0.0'; USE DATABASE FOO VERSION '2.0.0';" + "CREATE SCHEMA S1; SET SCHEMA S1;" + "CREATE VIEW S2.X (y string) as select 'a';"; helpParse(ddl); }
@Test public void testRenameTableQualified() throws Exception { QueryParser parser = new QueryParser(); String ddl = "CREATE FOREIGN TABLE G1( e1 integer auto_increment primary key, e2 varchar);" + "ALTER TABLE model.G1 RENAME TO G2"; MetadataStore mds = new MetadataStore(); MetadataFactory mf = new MetadataFactory("x", 1, "model", getDataTypes(), new Properties(), null); parser.parseDDL(mf, ddl); mf.mergeInto(mds); }