Examples of OrderBy


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

        tf.setExpressions(expressions);
        tf.setDelimiter(new Character(','));
        tf.setIncludeHeader(true);
       
        AggregateSymbol as = new AggregateSymbol("foo", NonReserved.TEXTAGG, false, tf);
        as.setOrderBy(new OrderBy(Arrays.asList(new ElementSymbol("e2"))));
       
        Query query = new Query();
        query.setSelect(new Select(Arrays.asList(as)));
       
        String sql = "SELECT TextAgg(FOR e1 as col1, e2 as col2 delimiter ',' header order by e2)"; //$NON-NLS-1$
View Full Code Here

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

    }   
   
    @Test public void testArrayAggWithOrderBy() throws Exception {
        String sql = "SELECT array_agg(1 order by e2)"; //$NON-NLS-1$
        AggregateSymbol as = new AggregateSymbol("foo", Reserved.ARRAY_AGG, false, new Constant(1));
        as.setOrderBy(new OrderBy(Arrays.asList(new ElementSymbol("e2"))));
        Query query = new Query();
        query.setSelect(new Select(Arrays.asList(as)));
        helpTest(sql, "SELECT ARRAY_AGG(1 ORDER BY e2)", query);
    }
View Full Code Here

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

                    }
                   
                    PlanNode sort = NodeEditor.findParent(firstProject, NodeConstants.Types.SORT, NodeConstants.Types.SOURCE);
                   
                    if (sort != null) { //correct the sort to the new columns as well
                        OrderBy sortOrder = (OrderBy)sort.getProperty(NodeConstants.Info.SORT_ORDER);
                        for (OrderByItem item : sortOrder.getOrderByItems()) {
                            SingleElementSymbol sortElement = item.getSymbol();
                            sortElement = newProjectSymbols.get(oldProjectSymbols.indexOf(sortElement));
                            item.setSymbol(sortElement);
                        }
                    }
View Full Code Here

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

      }
    } else {
      return root;
    }
    List<SingleElementSymbol> childOutputCols = (List<SingleElementSymbol>) projectNode.getFirstChild().getProperty(Info.OUTPUT_COLS);
    OrderBy orderBy = (OrderBy) node.getProperty(Info.SORT_ORDER);
    List<SingleElementSymbol> orderByKeys = orderBy.getSortKeys();
    for (SingleElementSymbol ss : orderByKeys) {
      if(ss instanceof AliasSymbol) {
                ss = ((AliasSymbol)ss).getSymbol();
            }
           
            if (ss instanceof ExpressionSymbol && !(ss instanceof AggregateSymbol)) {
                ExpressionSymbol exprSymbol = (ExpressionSymbol)ss;
               
                if (!exprSymbol.isDerivedExpression()) {
                    return root; //TODO: insert a new project node to handle this case
                }
            }
      if (!childOutputCols.contains(ss)) {
        return root;
      }
    }
    NodeEditor.removeChildNode(projectNode.getParent(), projectNode);
    if (parent != null && parent.getType() == NodeConstants.Types.TUPLE_LIMIT && parent.getParent() != null) {
      parent.addAsParent(projectNode);
    } else {
      if (parent == null) {
        root = projectNode;
      }
      if (parent != null && parent.getType() == NodeConstants.Types.TUPLE_LIMIT) {
        if (root == parent) {
          root = projectNode;
        }
        projectNode.addFirstChild(parent);
      } else {
        projectNode.addFirstChild(node);
      }
    }
    List<SingleElementSymbol> orderByOutputSymbols = (List<SingleElementSymbol>) node.getProperty(Info.OUTPUT_COLS);
    boolean unrelated = false;
    if (node.hasBooleanProperty(Info.UNRELATED_SORT)) {
      node.setProperty(Info.UNRELATED_SORT, false);
      unrelated = true;
    }
    for (OrderByItem item : orderBy.getOrderByItems()) {
      if (unrelated) {
          //update sort order
        int index = childOutputCols.indexOf(item.getSymbol());
        item.setExpressionPosition(index);
      }
View Full Code Here

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

      }
      return current;
    }
   
    //add an order by, which hopefully will get pushed down
    plannedResult.query.setOrderBy(new OrderBy(plannedResult.rightExpressions).clone());
    for (OrderByItem item : plannedResult.query.getOrderBy().getOrderByItems()) {
      int index = plannedResult.query.getProjectedSymbols().indexOf(item.getSymbol());
      item.setExpressionPosition(index);
    }
   
View Full Code Here

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

                throw new QueryPlannerException(msg);
            }
           
            MappingSourceNode sourceNode = elementNode.getSourceNode();
            ResultSetInfo rs = sourceNode.getResultSetInfo();
            OrderBy by = rs.getOrderBy();
            if (by == null) {
                by = new OrderBy();
            }
            ElementSymbol mappedSymbol = (ElementSymbol)sourceNode.getSymbolMap().get(new ElementSymbol(elementNode.getNameInSource()));
            by.addVariable((ElementSymbol)mappedSymbol.clone(), ((Boolean)types.get(i)).booleanValue());
            rs.setOrderBy(by);
    }
  }
View Full Code Here

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

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

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

    
     * @param query
     * @throws TeiidComponentException, MetaMatrixProcessingException
     */
    public QueryCommand rewriteOrderBy(QueryCommand queryCommand) throws TeiidComponentException {
      final OrderBy orderBy = queryCommand.getOrderBy();
        if (orderBy == null) {
            return queryCommand;
        }
        Select select = queryCommand.getProjectedQuery().getSelect();
        final List<SingleElementSymbol> projectedSymbols = select.getProjectedSymbols();
       
        LinkedList<OrderByItem> unrelatedItems = new LinkedList<OrderByItem>();
       
        boolean hasUnrelatedExpression = rewriteOrderBy(queryCommand, orderBy,
        projectedSymbols, unrelatedItems);
       
        if (orderBy.getVariableCount() == 0 || !hasUnrelatedExpression) {
          return queryCommand;
        }
       
        int originalSymbolCount = select.getProjectedSymbols().size();

View Full Code Here

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

            Criteria.combineCriteria(ii.coveredCriteria), orderBy, ii, agg);
        primary.ordering = null;
        return createTupleSource(projectedCols, Criteria.combineCriteria(ii.nonCoveredCriteria), null, primary, agg);
      }
      //order by pk to localize lookup costs, then join
      OrderBy pkOrderBy = new OrderBy();
      for (ElementSymbol elementSymbol : pkColumns) {
        pkOrderBy.addVariable(elementSymbol);
      }
      primary.valueTs = ii.table.createTupleSource(pkColumns,
          Criteria.combineCriteria(ii.coveredCriteria), pkOrderBy, ii, agg);
      return createTupleSource(projectedCols, Criteria.combineCriteria(ii.nonCoveredCriteria), orderBy, primary, agg);
    }
View Full Code Here

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

        break;

      case NodeConstants.Types.SORT:
      case NodeConstants.Types.DUP_REMOVE:
                SortNode sortNode = new SortNode(getID());
                OrderBy orderBy = (OrderBy) node.getProperty(NodeConstants.Info.SORT_ORDER);
        if (orderBy != null) {
          sortNode.setSortElements(orderBy.getOrderByItems());
        }
        if (node.getType() == NodeConstants.Types.DUP_REMOVE) {
          sortNode.setMode(Mode.DUP_REMOVE);
        } else if (node.hasBooleanProperty(NodeConstants.Info.IS_DUP_REMOVAL)) {
          sortNode.setMode(Mode.DUP_REMOVE_SORT);
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.