Package org.teiid.query.sql.lang

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


         query);
 
 
  @Test public void testOrderByNullOrdering(){
    OrderBy orderBy = new OrderBy();
    OrderByItem item = new OrderByItem(new ElementSymbol("c"), true);
    item.setNullOrdering(NullOrdering.FIRST);
    orderBy.getOrderByItems().add(item);
    item = new OrderByItem(new ElementSymbol("d"), false);
    item.setNullOrdering(NullOrdering.LAST);
    orderBy.getOrderByItems().add(item);

    Query query = getOrderByQuery(orderBy);
    helpTest("SELECT a FROM db.g WHERE b = aString ORDER BY c NULLS FIRST,d desc nulls last"//$NON-NLS-1$
         "SELECT a FROM db.g WHERE b = aString ORDER BY c NULLS FIRST, d DESC NULLS LAST"//$NON-NLS-1$
View Full Code Here


    }
   
    public void visit(OrderBy obj) {
      //add/correct aliases if necessary
        for (int i = 0; i < obj.getVariableCount(); i++) {
            OrderByItem item = obj.getOrderByItems().get(i);
            SingleElementSymbol element = item.getSymbol();
            if (item.isUnrelated()) {
              visitNode(element);
              continue;
            }
            String name = visitor.namingContext.getElementName(element, false);
            boolean needsAlias = visitor.namingContext.aliasColumns;
            if (name != null) {
             
              Expression expr = SymbolMap.getExpression(element);
                         
              if (!(expr instanceof SingleElementSymbol)) {
                  expr = new ExpressionSymbol(element.getShortName(), expr);
              } else if (expr instanceof ElementSymbol) {
                needsAlias &= needsAlias(name, (ElementSymbol)expr);
              }
                         
              if (needsAlias) {
                  element = new AliasSymbol(element.getShortName(), (SingleElementSymbol)expr);
              } else if (expr instanceof ElementSymbol) {
                element = (ElementSymbol)expr;
                visitNode(element);
              }
              item.setSymbol(element);
              element.setOutputName(name);
            }
        }
    }
View Full Code Here

                    List<ElementSymbol> schema = new ArrayList<ElementSymbol>(orderIndecies.length + 1);
                    ElementSymbol element = new ElementSymbol("val"); //$NON-NLS-1$
                        element.setType(inputType);
                        schema.add(element);
                    for (ListIterator<OrderByItem> iterator = aggSymbol.getOrderBy().getOrderByItems().listIterator(); iterator.hasNext();) {
                      OrderByItem item = iterator.next();
                      orderIndecies[iterator.previousIndex()] = collectExpression(item.getSymbol());
                      element = new ElementSymbol(String.valueOf(iterator.previousIndex()));
                            element.setType(inputType);
                      schema.add(element);
                      OrderByItem newItem = item.clone();
                      newItem.setSymbol(element);
                      orderByItems.add(newItem);
            }
                    SortingFilter filter = new SortingFilter(functions[i], getBufferManager(), getConnectionID(), false);
                    filter.setIndecies(orderIndecies);
                    filter.setElements(schema);
View Full Code Here

TOP

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

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.