Package org.teiid.query.sql.symbol

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


                    insert.addVariable((ElementSymbol)((ElementSymbol)i.next()).clone());
                }
            } else {
                for (int i = 0; i < values.size(); i++) {
                  if (usingQuery) {
                    SingleElementSymbol ses = (SingleElementSymbol)values.get(i);
                      ElementSymbol es = new ElementSymbol(ses.getShortName());
                      es.setType(ses.getType());
                      insert.addVariable(es);
                    } else {
                      insert.addVariable(new ElementSymbol("expr" + i)); //$NON-NLS-1$
                    }
                }
View Full Code Here


        // Cached state, if needed
        String[] knownShortNames = new String[knownElements.size()];
        List<Expression> expressions = new ArrayList<Expression>(knownElements.size());

        for(int i=0; i<knownElements.size(); i++) {
            SingleElementSymbol knownSymbol = knownElements.get(i);
            expressions.add(SymbolMap.getExpression(knownSymbol));
            if (knownSymbol instanceof ExpressionSymbol) {
                continue;
            }
           
            String name = knownSymbol.getShortName();
           
            knownShortNames[i] = name;
        }

        for (int i = 0; i < orderBy.getVariableCount(); i++) {
          SingleElementSymbol sortKey = orderBy.getVariable(i);
          if (sortKey instanceof ElementSymbol) {
            ElementSymbol symbol = (ElementSymbol)sortKey;
            String groupPart = null;
            if (symbol.getGroupSymbol() != null) {
              groupPart = symbol.getGroupSymbol().getName();
            }
            String symbolName = symbol.getName();
            String shortName = symbol.getShortName();
            if (groupPart == null) {
              int position = -1;
            SingleElementSymbol matchedSymbol = null;
            // walk the SELECT col short names, looking for a match on the current ORDER BY 'short name'
            for(int j=0; j<knownShortNames.length; j++) {
              if( !shortName.equalsIgnoreCase( knownShortNames[j] )) {
                continue;
              }
                  // if we already have a matched symbol, matching again here means it is duplicate/ambiguous
                  if(matchedSymbol != null) {
                    if (!matchedSymbol.equals(knownElements.get(j))) {
                      throw new QueryResolverException("ERR.015.008.0042", QueryPlugin.Util.getString("ERR.015.008.0042", symbolName)); //$NON-NLS-1$ //$NON-NLS-2$
                    }
                    continue;
                  }
                  matchedSymbol = knownElements.get(j);
                  position = j;
            }
            if (matchedSymbol != null) {
                TempMetadataID tempMetadataID = new TempMetadataID(symbol.getName(), matchedSymbol.getType());
                symbol.setMetadataID(tempMetadataID);
                symbol.setType(matchedSymbol.getType());
            }
                    if (position != -1) {
                        orderBy.setExpressionPosition(i, position);
                        continue;
                    }
View Full Code Here

           
            if (!(selectSymbol instanceof SingleElementSymbol)) {
                continue;
            }
           
            SingleElementSymbol symbol = (SingleElementSymbol)selectSymbol;
           
            setTypeIfNull(symbol, DataTypeManager.DefaultDataClasses.STRING);
        }
    }
View Full Code Here

            }
            SetQuery child = (SetQuery)subCommand;
            List projectedSymbols = child.getProjectedSymbols();
            if (child.getOrderBy() != null) {
                for (int j = 0; j < projectedSymbols.size(); j++) {
                    SingleElementSymbol ses = (SingleElementSymbol)projectedSymbols.get(j);
                    Class<?> targetType = firstProjectTypes.get(j);
                    if (ses.getType() != targetType && orderByContainsVariable(child.getOrderBy(), ses, j)) {
                        String sourceTypeName = DataTypeManager.getDataTypeName(ses.getType());
                        String targetTypeName = DataTypeManager.getDataTypeName(targetType);
                        throw new QueryResolverException(QueryPlugin.Util.getString("UnionQueryResolver.type_conversion", //$NON-NLS-1$
                                                                                    new Object[] {ses, sourceTypeName, targetTypeName}));
                    }
                }
View Full Code Here

    }
   
  static void checkSymbolTypes(List firstProjectTypes, List projSymbols) {
        for(int j=0; j<projSymbols.size(); j++){
            Class firstProjType = (Class)firstProjectTypes.get(j);
        SingleElementSymbol projSymbol = (SingleElementSymbol)projSymbols.get(j);
            Class projType = projSymbol.getType();
           
            if(firstProjType.equals(projType)){
                continue;
            }
           
View Full Code Here

            throw new IllegalArgumentException(QueryPlugin.Util.getString("QueryParser.nullSqlExpr")); //$NON-NLS-1$
        }

        ParseInfo dummyInfo = new ParseInfo();

        SingleElementSymbol result = null;
        try{
            result = getSqlParser(sql).selectExpression(dummyInfo);

        } catch(ParseException pe) {
            throw convertParserException(pe);
View Full Code Here

             
              if (metadataParameter.getParameterType()==ParameterInfo.INOUT) {
                  aliasName += "_IN"; //$NON-NLS-1$
              }
             
              SingleElementSymbol newSymbol = new AliasSymbol(aliasName, new ExpressionSymbol(paramSymbol.getShortName(), ref));
             
              select.addSymbol(newSymbol);
              accessPatternElementNames.add(queryName + ElementSymbol.SEPARATOR + aliasName);
          }
      }
View Full Code Here

    }
   
    public static List getTypedProjectedSymbols(List acutal, List projectedTypes, QueryMetadataInterface metadata) {
        List newProject = new ArrayList();
        for (int i = 0; i < acutal.size(); i++) {
            SingleElementSymbol originalSymbol = (SingleElementSymbol)acutal.get(i);
            SingleElementSymbol symbol = originalSymbol;
            Class type = (Class)projectedTypes.get(i);
            if (symbol.getType() != type) {
                if (symbol instanceof AliasSymbol) {
                    symbol = ((AliasSymbol)symbol).getSymbol();
                }

                Expression expr = symbol;
View Full Code Here

    List<SingleElementSymbol> symbols = this.aqr.getCommand().getProjectedSymbols();
    this.schema = new Class[symbols.size()];
        this.convertToDesiredRuntimeType = new boolean[symbols.size()];
    this.convertToRuntimeType = new boolean[symbols.size()];
    for (int i = 0; i < symbols.size(); i++) {
      SingleElementSymbol symbol = symbols.get(i);
      this.schema[i] = symbol.getType();
      this.convertToDesiredRuntimeType[i] = true;
      this.convertToRuntimeType[i] = true;
    }
       
      Assertion.isNull(workItem.getConnectorRequest(aqr.getAtomicRequestID()));
View Full Code Here

        }
       
        List<SingleElementSymbol> parsedBindings = new ArrayList<SingleElementSymbol>(bindingsCol.size());
        for (Iterator<String> bindings=bindingsCol.iterator(); bindings.hasNext();) {
            try {
                SingleElementSymbol binding = QueryParser.getQueryParser().parseSelectExpression(bindings.next());
                parsedBindings.add(binding);
            } catch (QueryParserException err) {
                throw new TeiidComponentException(err);
            }
        }
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.