Package org.teiid.query.sql.symbol

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


    if (projectedSymbols.size() != 1){
          throw new QueryResolverException("ERR.015.008.0032", QueryPlugin.Util.getString("ERR.015.008.0032", crit.getCommand())); //$NON-NLS-1$ //$NON-NLS-2$
    }
    Class<?> subqueryType = projectedSymbols.iterator().next().getType();
    String subqueryTypeName = DataTypeManager.getDataTypeName(subqueryType);
    Expression result = null;
      try {
          result = convertExpression(expression, exprTypeName, subqueryTypeName, metadata);
      } catch (QueryResolverException qre) {
          throw new QueryResolverException(qre, "ERR.015.008.0033", QueryPlugin.Util.getString("ERR.015.008.0033", crit)); //$NON-NLS-1$ //$NON-NLS-2$
      }
View Full Code Here


      LinkedList<Expression> leftExpressions,
      LinkedList<Expression> rightExpressions) {
    HashMap<List<GroupSymbol>, List<HashSet<Object>>> crits = new HashMap<List<GroupSymbol>, List<HashSet<Object>>>();
   
    for (int i = 0; i < leftExpressions.size(); i++) {
      Expression lexpr = leftExpressions.get(i);
      Expression rexpr = rightExpressions.get(i);
      if (!(lexpr instanceof ElementSymbol) || !(rexpr instanceof ElementSymbol)) {
        continue;
      }
      ElementSymbol les = (ElementSymbol)lexpr;
      ElementSymbol res = (ElementSymbol)rexpr;
View Full Code Here

      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

      return func;
  }

  public static Expression getExpression(String sql) throws QueryParserException,
      TeiidComponentException, QueryResolverException {
    Expression func = QueryParser.getQueryParser().parseExpression(sql);
    ResolverVisitor.resolveLanguageObject(func, FakeMetadataFactory.example1Cached());
    return func;
  }
View Full Code Here

  /**
   * Deep copy of object
   * @return Deep copy of object
   */
  public Object clone() {
      Expression leftCopy = null;
      if(getLeftExpression() != null) {
          leftCopy = (Expression) getLeftExpression().clone();
     
      Expression rightCopy = null;
      if(getRightExpression() != null) {
          rightCopy = (Expression) getRightExpression().clone();
     
     
    CompareCriteria result = new CompareCriteria(leftCopy, getOperator(), rightCopy);
View Full Code Here

     * (see #setValueIterator setValueIterator}).
     * @return Deep copy of object
     * @see java.lang.Object#clone()
     */
    public Object clone() {
        Expression leftCopy = null;
        if(getLeftExpression() != null) {
            leftCopy = (Expression) getLeftExpression().clone();
        }

        QueryCommand copyCommand = null;
View Full Code Here

    static List<Reference> getReferences(Command command) {
        List<Reference> boundList = new ArrayList<Reference>();
       
        for (Iterator<Reference> refs = ReferenceCollectorVisitor.getReferences(command).iterator(); refs.hasNext();) {
            Reference ref = refs.next();
            Expression expr = ref.getExpression();
            if (!(expr instanceof ElementSymbol)){
                continue;
            }
            ElementSymbol elem = (ElementSymbol)expr;
           
View Full Code Here

   * @throws TeiidComponentException
   */
  void resolveBetweenCriteria(BetweenCriteria criteria)
      throws QueryResolverException, TeiidComponentException {
 
      Expression exp = criteria.getExpression();
      Expression lower = criteria.getLowerExpression();
      Expression upper = criteria.getUpperExpression();
 
      // invariants: none of the expressions is an aggregate symbol
      setDesiredType(exp,
                                     (lower.getType() == null)
                                          ? upper.getType()
                                          : lower.getType(), criteria);
      // invariants: exp.getType() != null
      setDesiredType(lower, exp.getType(), criteria);
      setDesiredType(upper, exp.getType(), criteria);
      // invariants: none of the types is null
 
      String expTypeName = DataTypeManager.getDataTypeName(exp.getType());
      String lowerTypeName = DataTypeManager.getDataTypeName(lower.getType());
      String upperTypeName = DataTypeManager.getDataTypeName(upper.getType());
      if (exp.getType().equals(lower.getType()) && exp.getType().equals(upper.getType())) {
          return;
      }
 
      String commonType = ResolverUtil.getCommonType(new String[] {expTypeName, lowerTypeName, upperTypeName});
      if (commonType != null) {
View Full Code Here

  }

  void resolveCompareCriteria(CompareCriteria ccrit)
    throws QueryResolverException {
 
    Expression leftExpression = ccrit.getLeftExpression();
    Expression rightExpression = ccrit.getRightExpression();
 
    // Check typing between expressions
      setDesiredType(leftExpression, rightExpression.getType(), ccrit);
      setDesiredType(rightExpression, leftExpression.getType(), ccrit);
 
    if(leftExpression.getType().equals(rightExpression.getType()) ) {
      return;
    }
 
    // Try to apply an implicit conversion from one side to the other
    String leftTypeName = DataTypeManager.getDataTypeName(leftExpression.getType());
    String rightTypeName = DataTypeManager.getDataTypeName(rightExpression.getType());
 
      // Special cases when right expression is a constant
      if(rightExpression instanceof Constant) {
          // Auto-convert constant string on right to expected type on left
          try {
View Full Code Here

   */
  Expression resolveMatchCriteriaExpression(MatchCriteria mcrit, Expression expr)
  throws QueryResolverException {
      // Check left expression == string or CLOB
      String type = DataTypeManager.getDataTypeName(expr.getType());
      Expression result = expr;
      if(type != null) {
          if (! type.equals(DataTypeManager.DefaultDataTypes.STRING) &&
              ! type.equals(DataTypeManager.DefaultDataTypes.CLOB)) {
                 
              if(ResolverUtil.canImplicitlyConvert(type, DataTypeManager.DefaultDataTypes.STRING)) {
View Full Code Here

TOP

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

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.