Package org.teiid.query.sql.symbol

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


        return result;
      }
      //convert to the quantified form
      CompareCriteria cc = (CompareCriteria)crit;
      if (cc.getRightExpression() instanceof ScalarSubquery) {
        ScalarSubquery ss = (ScalarSubquery)cc.getRightExpression();
        result.type = ss.getClass();
        //we can only use a semi-join if we know that 1 row will be present
        if (ss.getCommand() instanceof Query) {
          Query query = (Query)ss.getCommand();
          if (query.getGroupBy() == null && query.hasAggregates()) {
            crit = new SubqueryCompareCriteria(cc.getLeftExpression(), ss.getCommand(), cc.getOperator(), SubqueryCompareCriteria.SOME);
          }
        }
      }
    }
    if (crit instanceof SubqueryCompareCriteria) {
View Full Code Here


    /**
     * @see org.teiid.query.sql.lang.AbstractCompareCriteria#getRightExpression()
     */
    public Expression getRightExpression() {
        return new ScalarSubquery(getCommand());
    }
View Full Code Here

       
        helpTestEval(func, elements, values, dataMgr, null, new Integer(5));
    }

    @Test public void testScalarSubquery() throws Exception{
        ScalarSubquery expr = new ScalarSubquery(new Query());
        ArrayList values = new ArrayList(1);
        values.add("a"); //$NON-NLS-1$
        Object expected = "a"; //$NON-NLS-1$
        helpTestWithValueIterator(expr, values, expected);
    }
View Full Code Here

          }
        }.evaluate(expr, null) );
  }

    @Test public void testScalarSubquery2() throws Exception{
        ScalarSubquery expr = new ScalarSubquery(new Query());
        ArrayList values = new ArrayList(1);
        values.add(null);
        helpTestWithValueIterator(expr, values, null);
    }
View Full Code Here

        values.add(null);
        helpTestWithValueIterator(expr, values, null);
    }

    @Test public void testScalarSubquery3() throws Exception{
        ScalarSubquery expr = new ScalarSubquery(new Query());
        helpTestWithValueIterator(expr, Collections.emptyList(), null);
    }
View Full Code Here

        ScalarSubquery expr = new ScalarSubquery(new Query());
        helpTestWithValueIterator(expr, Collections.emptyList(), null);
    }

    @Test public void testScalarSubqueryFails() throws Exception{
        ScalarSubquery expr = new ScalarSubquery(new Query());
        ArrayList values = new ArrayList(2);
        values.add("a"); //$NON-NLS-1$
        values.add("b"); //$NON-NLS-1$
       
        try {
View Full Code Here

        AggregateSymbol.Type type = Type.MAX;
        if (criteria.getOperator() == CompareCriteria.GT || criteria.getOperator() == CompareCriteria.GE) {
          type = Type.MIN;
        }
        q.getSelect().addSymbol(new AggregateSymbol(ses.getName(), type.name(), false, expr));
        cc.setRightExpression(new ScalarSubquery(q));
      cc.setOperator(criteria.getOperator());
        return rewriteCriteria(cc);
      }

        Expression leftExpr = rewriteExpressionDirect(criteria.getLeftExpression());
View Full Code Here

    } else if (expression instanceof CaseExpression) {
      expression = rewriteCaseExpression((CaseExpression)expression);
        } else if (expression instanceof SearchedCaseExpression) {
          expression = rewriteCaseExpression((SearchedCaseExpression)expression);
        } else if (expression instanceof ScalarSubquery) {
          ScalarSubquery subquery = (ScalarSubquery)expression;
          if (subquery.shouldEvaluate() && processing) {
            return new Constant(evaluator.evaluate(subquery, null), subquery.getType());
          }
            rewriteSubqueryContainer(subquery, true);
            if (!RelationalNodeUtil.shouldExecute(subquery.getCommand(), false, true)) {
              return new Constant(null, subquery.getType());
            }
            if (subquery.getCommand().getProcessorPlan() == null) {
              addImplicitLimit(subquery, 2);
            }
            return expression;
        } else if (expression instanceof ExpressionSymbol) {
          if (expression instanceof AggregateSymbol) {
View Full Code Here

    super();
  }
 
  public AssignmentStatement(ElementSymbol variable, QueryCommand value) {
        this.variable = variable;
        this.value = new ScalarSubquery(value);       
    }
View Full Code Here

 
  @Deprecated
  public AssignmentStatement(ElementSymbol variable, Command value) {
        this.variable = variable;
        if (value instanceof QueryCommand) {
          this.value = new ScalarSubquery((QueryCommand)value);
        } else {
          this.command = value;
        }
    }
View Full Code Here

TOP

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

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.