Package org.teiid.query.sql.lang

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


            }
            case NodeConstants.Types.GROUP:
            {
                List groups = (List) node.getProperty(NodeConstants.Info.GROUP_COLS);
                if(groups != null && !groups.isEmpty()) {
                    query.setGroupBy(new GroupBy(groups));
                }
                break;
            }
            case NodeConstants.Types.TUPLE_LIMIT:
            {
View Full Code Here


                GroupsUsedByElementsVisitor.getGroups(orderBy, groups);
            }
        } else if(type == NodeConstants.Types.GROUP) { 
          List<SingleElementSymbol> groupCols = (List<SingleElementSymbol>)node.getProperty(NodeConstants.Info.GROUP_COLS);
            if (groupCols != null) {
                GroupBy groupBy= new GroupBy(groupCols);
                ExpressionMappingVisitor.mapExpressions(groupBy, symbolMap);
                node.setProperty(NodeConstants.Info.GROUP_COLS, groupBy.getSymbols());
                if (!singleMapping) {
                    GroupsUsedByElementsVisitor.getGroups(groupBy, groups);
                }
            }              
        } else if (type == NodeConstants.Types.SOURCE || type == NodeConstants.Types.ACCESS) {
View Full Code Here

    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);
View Full Code Here

    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);
View Full Code Here

    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", "COUNT", false, new ElementSymbol("b", false)), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
      CompareCriteria.GT,
      new Constant(new Integer(0)) );
View Full Code Here

    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$
    groupBy.addSymbol(new ElementSymbol("b")); //$NON-NLS-1$
   
    CompoundCriteria having = new CompoundCriteria();
    having.setOperator(CompoundCriteria.AND);
    having.addCriteria(new CompareCriteria(
      new AggregateSymbol("count", "COUNT", false, new ElementSymbol("b", false)), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
View Full Code Here

      ArrayList<SingleElementSymbol> aggs = new ArrayList<SingleElementSymbol>();
      for (Expression expr : (List<Expression>)plannedResult.rightExpressions) {
        AggregateSymbolCollectorVisitor.getAggregates(expr, aggs, groupingSymbols);
      }
      if (!groupingSymbols.isEmpty()) {
        plannedResult.query.setGroupBy((GroupBy) new GroupBy(new ArrayList<SingleElementSymbol>(groupingSymbols)).clone());
      }
    }
    HashSet<SingleElementSymbol> projectedSymbols = new HashSet<SingleElementSymbol>();
    for (SingleElementSymbol ses : plannedResult.query.getProjectedSymbols()) {
      if (ses instanceof AliasSymbol) {
View Full Code Here

   * @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

        }
        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

        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

TOP

Related Classes of org.teiid.query.sql.lang.GroupBy

Copyright © 2018 www.massapicom. 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.