Examples of GroupBy


Examples of org.teiid.query.sql.lang.GroupBy

   * @return Updated plan
   */
  private static PlanNode attachGrouping(PlanNode plan, Query query, PlanHints hints) {
    PlanNode groupNode = NodeFactory.getNewNode(NodeConstants.Types.GROUP);

    GroupBy groupBy = query.getGroupBy();
    if(groupBy != null) {
      groupNode.setProperty(NodeConstants.Info.GROUP_COLS, groupBy.getSymbols());
            groupNode.addGroups(GroupsUsedByElementsVisitor.getGroups(groupBy));
    }

    attachLast(groupNode, plan);
       
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

        }
        if (!hasExpression) {
          return query;
        }
        Select select = query.getSelect();
        GroupBy groupBy = query.getGroupBy();
        query.setGroupBy(null);
        Criteria having = query.getHaving();
        query.setHaving(null);
        OrderBy orderBy = query.getOrderBy();
        query.setOrderBy(null);
        Limit limit = query.getLimit();
        query.setLimit(null);
        Into into = query.getInto();
        query.setInto(null);
        Set<Expression> newSelectColumns = new HashSet<Expression>();
        for (final Iterator iterator = groupBy.getSymbols().iterator(); iterator.hasNext();) {
            newSelectColumns.add(SymbolMap.getExpression((SingleElementSymbol)iterator.next()));
        }
        Set<AggregateSymbol> aggs = new HashSet<AggregateSymbol>();
        aggs.addAll(AggregateSymbolCollectorVisitor.getAggregates(select, true));
        if (having != null) {
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

        rewriteExpressions(innerSelect);
    return query;
  }
 
  public static boolean isDistinctWithGroupBy(Query query) {
    GroupBy groupBy = query.getGroupBy();
    if (groupBy == null) {
      return false;
    }
    HashSet<Expression> selectExpressions = new HashSet<Expression>();
    for (SingleElementSymbol selectExpr : query.getSelect().getProjectedSymbols()) {
      selectExpressions.add(SymbolMap.getExpression(selectExpr));
    }
    for (SingleElementSymbol groupByExpr :  (List<SingleElementSymbol>)groupBy.getSymbols()) {
      if (!selectExpressions.contains(groupByExpr)) {
        return false;
      }
    }
    return true;
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

        }
    }

    private void validateAggregates(Query query) {
        Select select = query.getSelect();
        GroupBy groupBy = query.getGroupBy();
        Criteria having = query.getHaving();
        if(groupBy != null || having != null || !AggregateSymbolCollectorVisitor.getAggregates(select, false).isEmpty()) {
            Set<Expression> groupSymbols = null;
            if(groupBy != null) {
                groupSymbols = new HashSet<Expression>();
                for (final Iterator iterator = groupBy.getSymbols().iterator(); iterator.hasNext();) {
                    final SingleElementSymbol element = (SingleElementSymbol)iterator.next();
                    groupSymbols.add(SymbolMap.getExpression(element));
                }
            }
           
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

     
      helpTest(from, "FROM m.g1, m.g2 CROSS JOIN m.g3");     //$NON-NLS-1$
    }
   
    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$
    }
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

     
      helpTest(gb, "GROUP BY m.g.e1");         //$NON-NLS-1$
    }

    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$
    }
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

    Select select = new Select();
    select.addSymbol(new AllSymbol());
    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();
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

  public void testQuery3() {
    Select select = new Select();
    select.addSymbol(new AllSymbol());
    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();
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

    Select select = new Select();
    select.addSymbol(new AllSymbol());
    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);
View Full Code Here

Examples of org.teiid.query.sql.lang.GroupBy

    Select select = new Select();
    select.addSymbol(new AllSymbol());
    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);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.