Package org.teiid.query.sql.symbol

Examples of org.teiid.query.sql.symbol.SingleElementSymbol


      updateInfo.view = query;
     
      List<SingleElementSymbol> projectedSymbols = query.getSelect().getProjectedSymbols();
     
      for (int i = 0; i < projectedSymbols.size(); i++) {
            SingleElementSymbol symbol = projectedSymbols.get(i);
            Expression ex = SymbolMap.getExpression(symbol);
           
            if (!metadata.elementSupports(viewSymbols.get(i).getMetadataID(), SupportConstants.Element.UPDATE)) {
              continue;
            }
View Full Code Here


  }

  private void updateContext(List<?> tuple,
      List<SingleElementSymbol> elements) {
    for (int i = 0; i < elements.size(); i++) {
      SingleElementSymbol element = elements.get(i);
      if (element instanceof ElementSymbol) {
        if (tuple == null) {
          joinNode.getContext().getVariableContext().remove((ElementSymbol)element);
        } else {
          joinNode.getContext().getVariableContext().setValue((ElementSymbol)element, tuple.get(i));
View Full Code Here

        }
       
        // Construct aggregate function state accumulators
        functions = new AggregateFunction[getElements().size()];
        for(int i=0; i<getElements().size(); i++) {
            SingleElementSymbol symbol = (SingleElementSymbol)getElements().get(i);
            Class<?> outputType = symbol.getType();
            Class<?> inputType = symbol.getType();
            if(symbol instanceof AggregateSymbol) {
                AggregateSymbol aggSymbol = (AggregateSymbol) symbol;
               
                if(aggSymbol.getExpression() == null) {
                    functions[i] = new Count();
View Full Code Here

      // Check for proper element name and datatype definition in the
      // dynamic SQL
      // If the projected symbol list equal to 1, we won't bother checking
      // the name.
      while (dynamicIter.hasNext()) {
        SingleElementSymbol dynamicSymbol = (SingleElementSymbol) dynamicIter.next();
        Class<?> sourceSymbolDatatype = sourceIter.next().getType();

        // Check if the the dynamic sql element types are equal or
        // implicitly convertible to the source types
        Class<?> dynamicType = dynamicSymbol.getType();
        String dynamicTypeName = DataTypeManager
            .getDataTypeName(dynamicType);
        String sourceTypeName = DataTypeManager
            .getDataTypeName(sourceSymbolDatatype);
        if (!dynamicTypeName.equals(sourceTypeName)
            && // If the types aren't the same, and...
            !DataTypeManager.isImplicitConversion(sourceTypeName,
                dynamicTypeName)) { // if there's no implicit
          // conversion between the
          // two
          Object[] params = new Object[] { sourceTypeName,
              dynamicSymbol.getShortName(),
              dynamicTypeName };
          throw new QueryProcessingException(QueryPlugin.Util
              .getString("ExecDynamicSqlInstruction.6", params)); //$NON-NLS-1$
        }
      }
View Full Code Here

        if(this.elements == null){
            List schema = procEnv.getSchema(rsName);
            elements = new ArrayList(schema.size());
            for(int i=0; i< schema.size(); i++){
                // defect 13432 - schema may contain AliasSymbols. Cast to SingleElementSymbol instead of ElementSymbol
                SingleElementSymbol element = (SingleElementSymbol)schema.get(i);
                elements.add(new ElementSymbol(rsName + "." + element.getShortName()));              //$NON-NLS-1$
            }
        }
        for(int i=0; i< elements.size(); i++){
            varContext.setValue((ElementSymbol)elements.get(i), currentRow.get(i));              
        }
View Full Code Here

    /* Query */
    Select translate(Query query) {
        List symbols = query.getSelect().getSymbols();
        List<DerivedColumn> translatedSymbols = new ArrayList<DerivedColumn>(symbols.size());
        for (Iterator i = symbols.iterator(); i.hasNext();) {
            SingleElementSymbol symbol = (SingleElementSymbol)i.next();
            String alias = null;
            if(symbol instanceof AliasSymbol) {
                alias = symbol.getOutputName();
                symbol = ((AliasSymbol)symbol).getSymbol();
            }

            org.teiid.language.Expression iExp = null;
            if(symbol instanceof ElementSymbol) {
View Full Code Here

  //   columnMap[expectedElementIndex] = allElementIndex
  private int[] getColumnMap(List allElements, List expectedElements) {
    int[] map = new int[expectedElements.size()];
   
    for(int i=0; i<expectedElements.size(); i++) {
        SingleElementSymbol symbol = (SingleElementSymbol) expectedElements.get(i);
       
        if (symbol instanceof AliasSymbol) {
            symbol = ((AliasSymbol)symbol).getSymbol();
        }
       
        String shortName = symbol.getShortName();
       
        // Find matching short name in all elements
        boolean foundMatch = false;
        for(int j=0; j<allElements.size(); j++) {
        SingleElementSymbol tupleSymbol = (SingleElementSymbol) allElements.get(j);
        if(tupleSymbol.getShortName().equalsIgnoreCase(shortName)) {
            map[i] = j;
            foundMatch = true;
            break;
        }
        }
View Full Code Here

     */
    public static List createColumnInfos(List symbols) {
        List infos = new ArrayList(symbols.size());
        Iterator iter = symbols.iterator();
        while (iter.hasNext()) {
            SingleElementSymbol symbol = (SingleElementSymbol)iter.next();
            String name = symbol.getName();
            if (symbol instanceof AliasSymbol) {
                AliasSymbol alias = (AliasSymbol)symbol;
                symbol = alias.getSymbol();
            }
            if (symbol instanceof ElementSymbol) {
                ElementSymbol element = (ElementSymbol)symbol;
                GroupSymbol group = element.getGroupSymbol();
                Object groupID = null;
                if (group != null) {
                    groupID = group.getMetadataID();
                }
                infos.add(new ColumnInfo(name, DataTypeManager.getDataTypeName(element.getType()), element.getType(), groupID,
                                         element.getMetadataID()));
            } else { // ExpressionSymbol or AggregateSymbol
                // Expressions don't map to a single element or group, so don't save that info
                infos.add(new ColumnInfo(name, DataTypeManager.getDataTypeName(symbol.getType()), symbol.getType()));
            }
        }

        return infos;
    }
View Full Code Here

        List projectedSymbols = originalCommand.getProjectedSymbols();
        columnMetadata = new Map[projectedSymbols.size()];
       
        Iterator symbolIter = projectedSymbols.iterator();
        for(int i=0; symbolIter.hasNext(); i++) {
            SingleElementSymbol symbol = (SingleElementSymbol) symbolIter.next();
            String shortColumnName = SingleElementSymbol.getShortName(symbol.getOutputName());
            if(symbol instanceof AliasSymbol) {
                symbol = ((AliasSymbol)symbol).getSymbol();
            }
            try {
                columnMetadata[i] = createColumnMetadata(shortColumnName, symbol);
View Full Code Here

            return null;
        }
        List<OrderByItem> items = orderBy.getOrderByItems();
        List<SortSpecification> translatedItems = new ArrayList<SortSpecification>();
        for (int i = 0; i < items.size(); i++) {
            SingleElementSymbol symbol = items.get(i).getSymbol();
            Ordering direction = items.get(i).isAscending() ? Ordering.ASC: Ordering.DESC;
           
            SortSpecification orderByItem = null;                               
            if(items.get(i).isUnrelated() || (!set && symbol instanceof ElementSymbol)){
              orderByItem = new SortSpecification(direction, translate(symbol));                               
            } else {
              orderByItem = new SortSpecification(direction, new ColumnReference(null, symbol.getOutputName(), null, symbol.getType()));
            }
            orderByItem.setNullOrdering(items.get(i).getNullOrdering());
            translatedItems.add(orderByItem);
        }
        return new org.teiid.language.OrderBy(translatedItems);
View Full Code Here

TOP

Related Classes of org.teiid.query.sql.symbol.SingleElementSymbol

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.