/** * Return a deep copy of this object * @return Deep copy of object */ public Object clone() { GroupBy clone = new GroupBy(LanguageObject.Util.deepClone(this.symbols, Expression.class)); clone.rollup = this.rollup; return clone; }
/** * Return a deep copy of this object * @return Deep copy of object */ public Object clone() { GroupBy clone = new GroupBy(LanguageObject.Util.deepClone(this.symbols, Expression.class)); clone.rollup = this.rollup; return clone; }
/** * Return a deep copy of this object * @return Deep copy of object */ public Object clone() { GroupBy clone = new GroupBy(LanguageObject.Util.deepClone(this.symbols, Expression.class)); clone.rollup = this.rollup; return clone; }
public static org.teiid.query.sql.lang.GroupBy helpExampleWithFunctions() { List<Expression> symbols = new ArrayList<Expression>(); ElementSymbol e1 = TestElementImpl.helpExample("vm1.g1", "e1");//$NON-NLS-1$ //$NON-NLS-2$ Function f = new Function("length", new Expression[] { e1 } );//$NON-NLS-1$ symbols.add(e1); symbols.add(f); return new org.teiid.query.sql.lang.GroupBy(symbols); }
public static org.teiid.query.sql.lang.GroupBy helpExample() { List<ElementSymbol> symbols = new ArrayList<ElementSymbol>(); symbols.add(TestElementImpl.helpExample("vm1.g1", "e1")); //$NON-NLS-1$ //$NON-NLS-2$ symbols.add(TestElementImpl.helpExample("vm1.g1", "e2")); //$NON-NLS-1$ //$NON-NLS-2$ symbols.add(TestElementImpl.helpExample("vm1.g1", "e3")); //$NON-NLS-1$ //$NON-NLS-2$ symbols.add(TestElementImpl.helpExample("vm1.g1", "e4")); //$NON-NLS-1$ //$NON-NLS-2$ return new org.teiid.query.sql.lang.GroupBy(symbols); }
@Test public void testGroupBy1() { GroupBy gb = new GroupBy(); gb.addSymbol(new ElementSymbol("m.g.e1")); //$NON-NLS-1$ helpTest(gb, "GROUP BY m.g.e1"); //$NON-NLS-1$ }
plannedResult.query.setGroupBy((GroupBy) new GroupBy(new ArrayList<Expression>(groupingSymbols)).clone());
addProjectedColumns(select, ordinal, sortColumns(this.iterator.getProjectedColumns().values())); from.addClause(this.iterator.getFromClause()); GroupBy groupBy = new GroupBy(); for (String keyCol : this.getKeyColumnNames()) { groupBy.addSymbol(new ElementSymbol(keyCol, this.groupSymbol));
public void testVisitGroupBy() { GroupBy gb = new GroupBy(); gb.addSymbol(exampleElement(true, 0)); gb.addSymbol(exampleElement(true, 1)); helpTest(gb, getSymbolMap()); }
@Test public void testGroupBy2() { GroupBy gb = new GroupBy(); gb.addSymbol(new ElementSymbol("m.g.e1")); //$NON-NLS-1$ gb.addSymbol(new ElementSymbol("m.g.e2")); //$NON-NLS-1$ gb.addSymbol(new ElementSymbol("m.g.e3")); //$NON-NLS-1$ helpTest(gb, "GROUP BY m.g.e1, m.g.e2, m.g.e3"); //$NON-NLS-1$ }
@Test public void testQuery6() { Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setCriteria(cc); query.setGroupBy(groupBy); query.setHaving(having); helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 HAVING e1 > 0"); //$NON-NLS-1$ }
@Test public void testQuery2() { Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$ OrderBy orderBy = new OrderBy(); orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setCriteria(cc); query.setGroupBy(groupBy); query.setHaving(having); query.setOrderBy(orderBy); helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$ }
@Test public void testQuery7() { Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$ OrderBy orderBy = new OrderBy(); orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setCriteria(cc); query.setGroupBy(groupBy); query.setHaving(having); query.setOrderBy(orderBy); helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$ }
select.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$ groupBy.addSymbol(new ElementSymbol("b")); //$NON-NLS-1$
/** SELECT a FROM m.g GROUP BY b, c HAVING b=5*/ @Test public void testGroupByHaving() { GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); Select select = new Select(); select.addSymbol(new ElementSymbol("a", false)); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("b", false)); //$NON-NLS-1$ groupBy.addSymbol(new ElementSymbol("c", false)); //$NON-NLS-1$ CompareCriteria having = new CompareCriteria(new ElementSymbol("b", false), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setGroupBy(groupBy); query.setHaving(having); helpTest("SELECT a FROM m.g GROUP BY b, c HAVING b=5", //$NON-NLS-1$ "SELECT a FROM m.g GROUP BY b, c HAVING b = 5", //$NON-NLS-1$ query); }
@Test public void testQuery3() { Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$ OrderBy orderBy = new OrderBy(); orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setGroupBy(groupBy); query.setHaving(having); query.setOrderBy(orderBy); helpTest(query, "SELECT * FROM m.g GROUP BY e1 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$ }
@Test public void testQuery5() { Select select = new Select(); select.addSymbol(new MultipleElementSymbol()); From from = new From(); from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$ CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$ OrderBy orderBy = new OrderBy(); orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setCriteria(cc); query.setGroupBy(groupBy); query.setOrderBy(orderBy); helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 ORDER BY e1"); //$NON-NLS-1$ }
/** SELECT a FROM m.g GROUP BY a HAVING COUNT(b) > 0*/ @Test public void testHavingFunction() { GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); Select select = new Select(); select.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$ Criteria having = new CompareCriteria( new AggregateSymbol("COUNT", false, new ElementSymbol("b", false)), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ CompareCriteria.GT, new Constant(new Integer(0)) ); Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setGroupBy(groupBy); query.setHaving(having); helpTest("SELECT a FROM m.g GROUP BY a HAVING COUNT(b) > 0", //$NON-NLS-1$ "SELECT a FROM m.g GROUP BY a HAVING COUNT(b) > 0", //$NON-NLS-1$ query); }
/** SELECT a FROM m.g GROUP BY b, c */ @Test public void testGroupBy() { GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); Select select = new Select(); select.addSymbol(new ElementSymbol("a", false)); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.addSymbol(new ElementSymbol("b", false)); //$NON-NLS-1$ groupBy.addSymbol(new ElementSymbol("c", false)); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setGroupBy(groupBy); helpTest("SELECT a FROM m.g GROUP BY b, c", //$NON-NLS-1$ "SELECT a FROM m.g GROUP BY b, c", //$NON-NLS-1$ query); }
@Test public void testGroupByRollup() { GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$ From from = new From(); from.addGroup(g); Select select = new Select(); select.addSymbol(new ElementSymbol("a", false)); //$NON-NLS-1$ GroupBy groupBy = new GroupBy(); groupBy.setRollup(true); groupBy.addSymbol(new ElementSymbol("b", false)); //$NON-NLS-1$ groupBy.addSymbol(new ElementSymbol("c", false)); //$NON-NLS-1$ Query query = new Query(); query.setSelect(select); query.setFrom(from); query.setGroupBy(groupBy); helpTest("SELECT a FROM m.g GROUP BY rollup(b, c)", //$NON-NLS-1$ "SELECT a FROM m.g GROUP BY ROLLUP(b, c)", //$NON-NLS-1$ query); }