Examples of ExpressionSymbol


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

            {
                if (RelationalNodeUtil.isUpdate(accessNode.getCommand())) {
                  //should return a 0 update count
                  ProjectNode pnode = new ProjectNode(getID());
                  pnode.setElements(accessNode.getElements());
                  pnode.setSelectSymbols(Arrays.asList(new ExpressionSymbol("x", new Constant(0)))); //$NON-NLS-1$
                  return pnode;
                }
                // Replace existing access node with a NullNode
                NullNode nullNode = new NullNode(getID());
                nullNode.setElements(accessNode.getElements());
                return nullNode;        
            }
            case 1:
            {
                // Replace existing access node with new access node (simplified command)
                AccessNode newNode = accessNodes.get(0);
                return newNode;                                               
            }
            default:
            {
              multiSource = true;
              UnionAllNode unionNode = new UnionAllNode(getID());
              unionNode.setElements(accessNode.getElements());
               
                for (AccessNode newNode : accessNodes) {
                  unionNode.addChild(newNode);
                }
             
              RelationalNode parent = unionNode;
             
                // More than 1 access node - replace with a union
              if (RelationalNodeUtil.isUpdate(accessNode.getCommand())) {
                update = true;
                GroupingNode groupNode = new GroupingNode(getID());                   
                AggregateSymbol sumCount = new AggregateSymbol("SumCount", NonReserved.SUM, false, (Expression)accessNode.getElements().get(0)); //$NON-NLS-1$             
                List<Expression> outputElements = new ArrayList<Expression>(1);               
                outputElements.add(sumCount);
                groupNode.setElements(outputElements);
                groupNode.addChild(unionNode);
               
                ProjectNode projectNode = new ProjectNode(getID());
               
                Expression intSum = ResolverUtil.getConversion(sumCount, DataTypeManager.getDataTypeName(sumCount.getType()), DataTypeManager.DefaultDataTypes.INTEGER, false, metadata.getFunctionLibrary());
               
                Expression rowCount = new ExpressionSymbol("RowCount", intSum); //$NON-NLS-1$               
                outputElements = new ArrayList<Expression>(1);               
                outputElements.add(rowCount);                
                projectNode.setElements(outputElements);
                projectNode.setSelectSymbols(outputElements);
                projectNode.addChild(groupNode);
View Full Code Here

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

                        continue;
                    }
            }
          } else if (sortKey instanceof ExpressionSymbol) {
            // check for legacy positional
          ExpressionSymbol es = (ExpressionSymbol)sortKey;
            if (es.getExpression() instanceof Constant) {
                Constant c = (Constant)es.getExpression();
                int elementOrder = Integer.valueOf(c.getValue().toString()).intValue();
                // adjust for the 1 based index.
                if (elementOrder > knownElements.size() || elementOrder < 1) {
                    throw new QueryResolverException(QueryPlugin.Util.getString("SQLParser.non_position_constant", c)); //$NON-NLS-1$
                }
View Full Code Here

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

        }
    if(symbol instanceof AliasSymbol) {
            symbol = ((AliasSymbol)symbol).getSymbol();
        }
    if(symbol instanceof ExpressionSymbol && !(symbol instanceof AggregateSymbol)) {
        ExpressionSymbol exprSymbol = (ExpressionSymbol) symbol;
        Expression expr = exprSymbol.getExpression();
        
        if(expr instanceof Constant) {                 
            exprSymbol.setExpression(new Constant(null, replacement));
        } else if (expr instanceof AbstractCaseExpression) {
            ((AbstractCaseExpression)expr).setType(replacement);
        } else if (expr instanceof ScalarSubquery) {
            ((ScalarSubquery)expr).setType(replacement);                                       
        } else {
View Full Code Here

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

      throw new AssertionError();
    }
   
    for (Map.Entry<ElementSymbol, Expression> entry : QueryResolver.getVariableValues(userCommand, false, metadata).entrySet()) {
      if (entry.getKey().getGroupSymbol().getShortName().equalsIgnoreCase(ProcedureReservedWords.INPUTS)) {
        Expression value = entry.getValue() instanceof SingleElementSymbol ? entry.getValue() : new ExpressionSymbol("x", entry.getValue()); //$NON-NLS-1$
        ElementSymbol newElementSymbol = entry.getKey().clone();
        newElementSymbol.getGroupSymbol().setName(SQLConstants.Reserved.NEW);
        params.put(newElementSymbol, value);
        if (userCommand instanceof Update) {
          ((Query)query).getSelect().addSymbol((SelectSymbol) value);
View Full Code Here

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

             
              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

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

                if (symbol instanceof ExpressionSymbol) {
                    expr = ((ExpressionSymbol)symbol).getExpression();
                }
               
                try {
                    symbol = new ExpressionSymbol(originalSymbol.getShortName(), ResolverUtil.convertExpression(expr, DataTypeManager.getDataTypeName(type), metadata));
                } catch (QueryResolverException err) {
                    throw new TeiidRuntimeException(err);
                }
               
                if (!(originalSymbol instanceof ExpressionSymbol)) {
View Full Code Here

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

        if (symbol instanceof AliasSymbol) {
            symbol = ((AliasSymbol)symbol).getSymbol();
        }

        if (symbol instanceof ExpressionSymbol && !(symbol instanceof AggregateSymbol)) {
            ExpressionSymbol exprSymbol = (ExpressionSymbol)symbol;
            return exprSymbol.getExpression();
        }

        return symbol;
    }
View Full Code Here

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

            Expression expr = SymbolMap.getExpression(symbol);
           
            SingleElementSymbol newSymbol = symbol;
           
            if (!(expr instanceof SingleElementSymbol)) {
                newSymbol = new ExpressionSymbol(newSymbol.getShortName(), expr);
            } else if (expr instanceof ElementSymbol) {
                newSymbol = (ElementSymbol)expr;
              if (!needsAlias) {
                newAlias = newSymbol.getOutputName();
              } else {
View Full Code Here

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

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

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

        int index = 0;
        for (Expression expr : newSelectColumns) {
            if (expr instanceof SingleElementSymbol) {
                innerSelect.addSymbol((SingleElementSymbol)expr);
            } else {
                innerSelect.addSymbol(new ExpressionSymbol("EXPR" + index++ , expr)); //$NON-NLS-1$
            }
        }
        query.setSelect(innerSelect);
        Query outerQuery = null;
        try {
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.