/** * @see java.lang.ThreadLocal#initialValue() */ @Override protected QueryParser initialValue() { return new QueryParser(); } };
/** * @see java.lang.ThreadLocal#initialValue() */ @Override protected QueryParser initialValue() { return new QueryParser(); } };
/** * @see java.lang.ThreadLocal#initialValue() */ @Override protected QueryParser initialValue() { return new QueryParser(); } };
public static final CommandStatement sample2() { QueryParser parser = new QueryParser(); try { Update update = (Update) parser.parseCommand("UPDATE x SET x = 'y'"); //$NON-NLS-1$ return new CommandStatement(update); } catch(Exception e) { return null;} }
public static final CommandStatement sample1() { QueryParser parser = new QueryParser(); try { Query query = (Query) parser.parseCommand("Select x from y"); //$NON-NLS-1$ return new CommandStatement(query); } catch(Exception e) { return null;} }
public static Call example() throws Exception { String sql = "EXEC pm1.sq3('x', 1)"; //$NON-NLS-1$ Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, TstLanguageBridgeFactory.metadata); return TstLanguageBridgeFactory.factory.translate((StoredProcedure)command); }
@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 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 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=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 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 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(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 public void testViewWithoutColumnTypes() 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 (e11, e12, e13, e14) AS SELECT * FROM PM1.G1"); mf.mergeInto(mds); }
@Test public void testReservedNamespace1() throws Exception { QueryParser parser = new QueryParser(); String ddl = "set namespace 'http://www.teiid.org/translator/salesforce/2012' 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 public void testValidateAssignmentWithFunctionOnParameter_InServer() throws Exception{ String sql = "EXEC pm1.vsp36(5)"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Validate ValidatorReport report = Validator.validate(command, metadata); assertEquals(0, report.getItems().size()); }
protected MetadataFactory createMetadataFactory(VDBMetaData vdb, MetadataStore store, ModelMetaData model, Map<String, ? extends VDBResource> vdbResources) { Map<String, Datatype> datatypes = store.getDatatypes(); MetadataFactory factory = new MetadataFactory(vdb.getName(), vdb.getVersion(), datatypes, model); factory.getSchema().setPhysical(model.isSource()); factory.setParser(new QueryParser()); //for thread safety each factory gets it's own instance. factory.setVdbResources(vdbResources); factory.setVDBClassLoader(vdb.getAttachment(ClassLoader.class)); return factory; }
@Test public void testDefect14886() throws Exception{ String sql = "CREATE VIRTUAL PROCEDURE BEGIN END"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Validate ValidatorReport report = Validator.validate(command, metadata); // Validate assertEquals(0, report.getItems().size()); }
@Test public void testOptionMakedep() throws Exception { String sql = "SELECT A.alert_id " + //$NON-NLS-1$ "FROM (FSK_ALERT AS A MAKEDEP INNER JOIN Core.FSC_PARTY_DIM AS C ON A.primary_entity_key = C.PARTY_KEY) " +//$NON-NLS-1$ "LEFT OUTER JOIN FSK_SCENARIO AS S ON A.scenario_id = S.scenario_id ";//$NON-NLS-1$ Query command = (Query)new QueryParser().parseCommand(sql); JoinPredicate predicate = (JoinPredicate)command.getFrom().getClauses().get(0); assertTrue(((JoinPredicate)predicate.getLeftClause()).getLeftClause().isMakeDep()); }
@Test public void testDefect21389() throws Exception{ String sql = "CREATE VIRTUAL PROCEDURE BEGIN SELECT * INTO #temptable FROM pm1.g1; INSERT INTO #temptable (e1) VALUES ('a'); END"; //$NON-NLS-1$ TransformationMetadata metadata = RealMetadataFactory.example1(); Column c = metadata.getElementID("pm1.g1.e1"); //$NON-NLS-1$ c.setUpdatable(false); Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Validate ValidatorReport report = Validator.validate(command, metadata); // Validate assertEquals(0, report.getItems().size()); }