Package org.teiid.query.sql.lang

Examples of org.teiid.query.sql.lang.SubquerySetCriteria


      outerSelect.addSymbol(e1);
    From outerFrom = new From();
      GroupSymbol pm1g1 = new GroupSymbol("pm1.g1"); //$NON-NLS-1$
    outerFrom.addGroup(pm1g1);
      ElementSymbol e2outer = new ElementSymbol("e2"); //$NON-NLS-1$
    SubquerySetCriteria crit = new SubquerySetCriteria(e2outer, innerQuery);
      Query outerQuery = new Query();
      outerQuery.setSelect(outerSelect);
      outerQuery.setFrom(outerFrom);
      outerQuery.setCriteria(crit);
     
View Full Code Here


    outerSelect.addSymbol(e1);
    From outerFrom = new From();
    GroupSymbol pm1g1 = new GroupSymbol("pm1.g1"); //$NON-NLS-1$
    outerFrom.addGroup(pm1g1);
    ElementSymbol e2 = new ElementSymbol("e2"); //$NON-NLS-1$
    SubquerySetCriteria crit = new SubquerySetCriteria(e2, innerQuery);
    Query outerQuery = new Query();
    outerQuery.setSelect(outerSelect);
    outerQuery.setFrom(outerFrom);
    outerQuery.setCriteria(crit);
   
View Full Code Here

    ElementSymbol e1 = new ElementSymbol("e1"); //$NON-NLS-1$
    outerSelect.addSymbol(e1);
    From outerFrom = new From();
    GroupSymbol pm1g1 = new GroupSymbol("pm1.g1"); //$NON-NLS-1$
    outerFrom.addGroup(pm1g1);
    SubquerySetCriteria crit = new SubquerySetCriteria(e1, innerQuery);
    Query outerQuery = new Query();
    outerQuery.setSelect(outerSelect);
    outerQuery.setFrom(outerFrom);
    outerQuery.setCriteria(crit);
View Full Code Here

            cost = childCost * setCriteria.getNumberOfValues() / ndv;
           
            isNegatedPredicateCriteria = setCriteria.isNegated();
           
        } else if(predicateCriteria instanceof SubquerySetCriteria) {
            SubquerySetCriteria setCriteria = (SubquerySetCriteria) predicateCriteria;
           
            // TODO - use inner ProcessorPlan cardinality estimates
            // to determine the estimated number of values
            if (unknownChildCost) {
                return UNKNOWN_VALUE;
            }
            cost = childCost / 3;
           
            isNegatedPredicateCriteria = setCriteria.isNegated();

        } else if(predicateCriteria instanceof IsNullCriteria) {
            IsNullCriteria isNullCriteria = (IsNullCriteria)predicateCriteria;

            float nnv = getStat(Stat.NNV, elements, currentNode, childCost, metadata);
View Full Code Here

  public PlannedResult findSubquery(Criteria crit) throws TeiidComponentException, QueryMetadataException {
    PlannedResult result = new PlannedResult();
    if (crit instanceof SubquerySetCriteria) {
      //convert to the quantified form
      SubquerySetCriteria ssc = (SubquerySetCriteria)crit;
      if (ssc.getSubqueryHint().isNoUnnest()) {
        return result;
      }
      result.not ^= ssc.isNegated();
      result.type = crit.getClass();
      result.mergeJoin = ssc.getSubqueryHint().isMergeJoin();
      if (!UNNEST && !result.mergeJoin) {
        return result;
      }
      crit = new SubqueryCompareCriteria(ssc.getExpression(), ssc.getCommand(), SubqueryCompareCriteria.EQ, SubqueryCompareCriteria.SOME);
    } else if (crit instanceof CompareCriteria) {
      if (!UNNEST) {
        return result;
      }
      //convert to the quantified form
View Full Code Here

    }

    public static SubquerySetCriteria helpExample() {
        ElementSymbol element = TestElementImpl.helpExample("g1", "e1"); //$NON-NLS-1$ //$NON-NLS-2$
        Query query = TestQueryImpl.helpExample(true);
        SubquerySetCriteria ssc = new SubquerySetCriteria(element, query);
        ssc.setNegated(true);
        return ssc;
    }
View Full Code Here

          }
        }
              addImplicitLimit(exists, 1);
        }
    } else if (criteria instanceof SubquerySetCriteria) {
        SubquerySetCriteria sub = (SubquerySetCriteria)criteria;
        if (rewriteLeftExpression(sub)) {
          return UNKNOWN_CRITERIA;
        }
        rewriteSubqueryContainer(sub, true);
        if (!RelationalNodeUtil.shouldExecute(sub.getCommand(), false, true)) {
          return getSimpliedCriteria(criteria, sub.getExpression(), !sub.isNegated(), true);
        }
        } else if (criteria instanceof DependentSetCriteria) {
            criteria = rewriteDependentSetCriteria((DependentSetCriteria)criteria);
        } else if (criteria instanceof ExpressionCriteria) {
          return new CompareCriteria(((ExpressionCriteria) criteria).getExpression(), CompareCriteria.EQ, new Constant(Boolean.TRUE));
View Full Code Here

     */
    private Criteria rewriteCriteria(SubqueryCompareCriteria criteria) throws TeiidComponentException, TeiidProcessingException{
     
      if (criteria.getCommand().getProcessorPlan() == null && criteria.getPredicateQuantifier() != SubqueryCompareCriteria.ALL) {
        if (criteria.getOperator() == CompareCriteria.EQ || criteria.getOperator() == CompareCriteria.NE) {
          SubquerySetCriteria result = new SubquerySetCriteria(criteria.getLeftExpression(), criteria.getCommand());
          result.setNegated(criteria.getOperator() == CompareCriteria.NE);
          return rewriteCriteria(result);
        }
        CompareCriteria cc = new CompareCriteria();
        cc.setLeftExpression(criteria.getLeftExpression());
        Query q = createInlineViewQuery(new GroupSymbol("X"), criteria.getCommand(), metadata, criteria.getCommand().getProjectedSymbols()); //$NON-NLS-1$
View Full Code Here

           
        Query query = new Query();
        query.setSelect(select);
        query.setFrom(from);
        query.setCriteria(criteria);
        SubquerySetCriteria subCrit = new SubquerySetCriteria(expr, query);
        subCrit.getSubqueryHint().setMergeJoin(semiJoin);
        Query outer = new Query();
        outer.setSelect(select);
        outer.setFrom(from);
        outer.setCriteria(subCrit);
    return outer;
View Full Code Here

           
        Query query = new Query();
        query.setSelect(select);
        query.setFrom(from);
        query.setCriteria(criteria);
        SubquerySetCriteria subCrit = new SubquerySetCriteria(expr, query);
        subCrit.setNegated(true);
        Query outer = new Query();
        outer.setSelect(select);
        outer.setFrom(from);
        outer.setCriteria(subCrit);
                    
View Full Code Here

TOP

Related Classes of org.teiid.query.sql.lang.SubquerySetCriteria

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.