/** * Return copy of this From clause. */ public Object clone() { return new From(LanguageObject.Util.deepClone(clauses, FromClause.class)); }
public static Command createDeleteProcedure(Delete delete, QueryMetadataInterface metadata, CommandContext context) throws QueryResolverException, QueryMetadataException, TeiidComponentException, TeiidProcessingException { QueryRewriter rewriter = new QueryRewriter(metadata, context); Criteria crit = delete.getCriteria(); Query query = new Query(new Select(), new From(Arrays.asList(new UnaryFromClause(delete.getGroup()))), crit, null, null); return rewriter.createDeleteProcedure(delete, query, delete.getGroup(), delete.getGroup().getName()); }
public static Command createDeleteProcedure(Delete delete, QueryMetadataInterface metadata, CommandContext context) throws QueryResolverException, QueryMetadataException, TeiidComponentException, TeiidProcessingException { QueryRewriter rewriter = new QueryRewriter(metadata, context); Criteria crit = delete.getCriteria(); Query query = new Query(new Select(), new From(Arrays.asList(new UnaryFromClause(delete.getGroup()))), crit, null, null); return rewriter.createDeleteProcedure(delete, query, delete.getGroup(), delete.getGroup().getName()); }
public static Query createMatViewQuery(Object matMetadataId, String matTableName, List<? extends Expression> select, boolean isGlobal) { Query query = new Query(); query.setSelect(new Select(select)); GroupSymbol gs = new GroupSymbol(matTableName); gs.setGlobalTable(isGlobal); gs.setMetadataID(matMetadataId); query.setFrom(new From(Arrays.asList(new UnaryFromClause(gs)))); return query; }
@Test public void testLimit() { Query query = new Query(); Select select = new Select(Arrays.asList(new MultipleElementSymbol())); From from = new From(Arrays.asList(new UnaryFromClause(new GroupSymbol("a")))); //$NON-NLS-1$ query.setSelect(select); query.setFrom(from); query.setLimit(new Limit(null, new Constant(new Integer(100)))); helpTest("Select * from a limit 100", "SELECT * FROM a LIMIT 100", query); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testLimitWithReferences1() { Query query = new Query(); Select select = new Select(Arrays.asList(new MultipleElementSymbol())); From from = new From(Arrays.asList(new UnaryFromClause(new GroupSymbol("a")))); //$NON-NLS-1$ query.setSelect(select); query.setFrom(from); query.setLimit(new Limit(new Reference(0), new Constant(new Integer(100)))); helpTest("Select * from a limit ?,100", "SELECT * FROM a LIMIT ?, 100", query); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testObjectTable1() throws Exception { Query query = new Query(); query.setSelect(new Select(Arrays.asList(new MultipleElementSymbol()))); ObjectTable objectTable = new ObjectTable(); objectTable.setRowScript("y"); objectTable.setPassing(Arrays.asList(new DerivedColumn("y", new ElementSymbol("e1")))); objectTable.setColumns(Arrays.asList(new ObjectTable.ObjectColumn("z", "time", "now()", null))); objectTable.setName("x"); query.setFrom(new From(Arrays.asList(objectTable))); helpTest("select * from objecttable('y' passing e1 as y columns z time 'now()') as x", "SELECT * FROM OBJECTTABLE('y' PASSING e1 AS y COLUMNS z time 'now()') AS x", query); }
@Test public void testNestedTable() throws Exception { String sql = "SELECT * from TABLE(exec foo()) as x"; //$NON-NLS-1$ Query query = new Query(); query.setSelect(new Select(Arrays.asList(new MultipleElementSymbol()))); StoredProcedure sp = new StoredProcedure(); sp.setProcedureName("foo"); SubqueryFromClause sfc = new SubqueryFromClause("x", sp); sfc.setLateral(true); query.setFrom(new From(Arrays.asList(sfc))); helpTest(sql, "SELECT * FROM LATERAL(EXEC foo()) AS x", query); }
public Query createBaseQuery() throws Exception { Query query = new Query(); Select select = new Select(); select.addSymbol(getElementSymbol(1,1)); query.setSelect(select); From from = new From(); from.addGroup(getPhysicalGroup(1)); query.setFrom(from); return query; }
public static final Query sample2() { Query q1 = new Query(); Select select = new Select(); select.addSymbol(new ElementSymbol("xml")); //$NON-NLS-1$ q1.setSelect(select); From from = new From(); from.addGroup(new GroupSymbol("xmltest.doc1")); //$NON-NLS-1$ q1.setFrom(from); return q1; }
private Query createTestQuery(String group) { GroupSymbol g = new GroupSymbol(group); From from = new From(); from.addGroup(g); Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); Query query1 = new Query(); query1.setSelect(select); query1.setFrom(from); return query1; }
@Test public void testElementInDoubleQuotes_Update() throws Exception { GroupSymbol g = new GroupSymbol("x"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); ElementSymbol e = new ElementSymbol("foo"); //$NON-NLS-1$ Update query = new Update(); query.setGroup(g); query.addChange(e, new Constant("bar", String.class)); //$NON-NLS-1$ helpTest("update x set \"foo\"='bar'", //$NON-NLS-1$ "UPDATE x SET foo = 'bar'", //$NON-NLS-1$ query); }
@Test public void testFetchFirst() { Query query = new Query(); Select select = new Select(Arrays.asList(new MultipleElementSymbol())); From from = new From(Arrays.asList(new UnaryFromClause(new GroupSymbol("a")))); //$NON-NLS-1$ query.setSelect(select); query.setFrom(from); query.setLimit(new Limit(null, new Constant(2))); helpTest("Select * from a fetch first 2 rows only", "SELECT * FROM a LIMIT 2", query); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testFetchFirstRow() { Query query = new Query(); Select select = new Select(Arrays.asList(new MultipleElementSymbol())); From from = new From(Arrays.asList(new UnaryFromClause(new GroupSymbol("a")))); //$NON-NLS-1$ query.setSelect(select); query.setFrom(from); query.setLimit(new Limit(null, new Constant(1))); helpTest("Select * from a fetch first row only", "SELECT * FROM a LIMIT 1", query); //$NON-NLS-1$ //$NON-NLS-2$ }
@Test public void testUnionJoin() { String sql = "select * from pm1.g1 union join pm1.g2 where g1.e1 = 1"; //$NON-NLS-1$ String expected = "SELECT * FROM pm1.g1 UNION JOIN pm1.g2 WHERE g1.e1 = 1"; //$NON-NLS-1$ Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addClause(new JoinPredicate(new UnaryFromClause(new GroupSymbol("pm1.g1")), new UnaryFromClause(new GroupSymbol("pm1.g2")), JoinType.JOIN_UNION)); //$NON-NLS-1$ //$NON-NLS-2$ Criteria crit = new CompareCriteria(new ElementSymbol("g1.e1"), CompareCriteria.EQ, new Constant(new Integer(1))); //$NON-NLS-1$ Query command = new Query(select, from, crit, null, null); helpTest(sql, expected, command); }
@Test public void testQuery1() { Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); helpTest(query, "SELECT * FROM m.g"); //$NON-NLS-1$ }
@Test public void testCommandStatement1() { Query q1 = new Query(); Select select = new Select(); select.addSymbol(new ElementSymbol("x")); //$NON-NLS-1$ q1.setSelect(select); From from = new From(); from.addGroup(new GroupSymbol("g")); //$NON-NLS-1$ q1.setFrom(from); CommandStatement cmdStmt = new CommandStatement(q1); helpTest(cmdStmt, "SELECT x FROM g;"); //$NON-NLS-1$ }
@Test public void testScalarSubquery() { Select s1 = new Select(); s1.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ From f1 = new From(); f1.addGroup(new GroupSymbol("m.g1")); //$NON-NLS-1$ Query q1 = new Query(); q1.setSelect(s1); q1.setFrom(f1); ScalarSubquery obj = new ScalarSubquery(q1); helpTest(obj, "(SELECT e1 FROM m.g1)"); //$NON-NLS-1$ }
@Test public void testSubqueryCompareCriteria2() { Select s1 = new Select(); s1.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ From f1 = new From(); f1.addGroup(new GroupSymbol("m.g1")); //$NON-NLS-1$ Query q1 = new Query(); q1.setSelect(s1); q1.setFrom(f1); ElementSymbol expr = new ElementSymbol("e2"); //$NON-NLS-1$ SubqueryCompareCriteria scc = new SubqueryCompareCriteria(expr, q1, SubqueryCompareCriteria.LE, SubqueryCompareCriteria.SOME); helpTest(scc, "e2 <= SOME (SELECT e1 FROM m.g1)"); //$NON-NLS-1$ }
@Test public void testStoredQuery2SanityCheck(){ StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setProcedureName("proc1"); //$NON-NLS-1$ SPParameter parameter = new SPParameter(1, new Constant("param1")); //$NON-NLS-1$ storedQuery.setParameter(parameter); From from = new From(); SubqueryFromClause sfc = new SubqueryFromClause("x", storedQuery); //$NON-NLS-1$ from.addClause(sfc); Select select = new Select(); select.addSymbol(new ElementSymbol("x.a")); //$NON-NLS-1$ helpTest("exec proc1('param1')", "EXEC proc1('param1')", storedQuery); //$NON-NLS-1$ //$NON-NLS-2$ }