Package org.teiid.query.sql.lang

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


   
    GroupBy groupBy = new GroupBy();
    groupBy.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$
    groupBy.addSymbol(new ElementSymbol("b")); //$NON-NLS-1$
   
    CompoundCriteria having = new CompoundCriteria();
    having.setOperator(CompoundCriteria.AND);
    having.addCriteria(new CompareCriteria(
      new AggregateSymbol("count", "COUNT", false, new ElementSymbol("b", false)), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
      CompareCriteria.GT,
      new Constant(new Integer(0)) ));
    having.addCriteria(new CompareCriteria(
      new Function("+", new Expression[] { new ElementSymbol("b", false), new Constant(new Integer(5)) }), //$NON-NLS-1$ //$NON-NLS-2$
      CompareCriteria.GT,
      new Constant(new Integer(0)) ));
       
    Query query = new Query();
View Full Code Here


    select.addSymbol(a);

    Criteria crit1 = new CompareCriteria(new ElementSymbol("b"), CompareCriteria.EQ, new ElementSymbol("x")); //$NON-NLS-1$ //$NON-NLS-2$
    Expression constant = new Constant(new Integer(1000));
    Criteria crit2 = new CompareCriteria(a, CompareCriteria.EQ, constant);
    Criteria crit = new CompoundCriteria(CompoundCriteria.AND, crit1, crit2);

    Query query = new Query();
    query.setSelect(select);
    query.setFrom(from);
    query.setCriteria(crit);
View Full Code Here

  }

  /** SELECT a or b from g */
  @Test public void testOrInSelect(){
    Query query = new Query();
    query.setSelect(new Select(Arrays.asList(new ExpressionSymbol("foo", new CompoundCriteria(CompoundCriteria.OR, Arrays.asList(new ExpressionCriteria(new ElementSymbol("a")), new ExpressionCriteria(new ElementSymbol("b"))))))));
    helpTest("select a or b", "SELECT (a) OR (b)", query);
  }
View Full Code Here

        From f = new From();
        f.addGroup(new GroupSymbol("m.g1")); //$NON-NLS-1$
        CompareCriteria c1 = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(0))); //$NON-NLS-1$
        CompareCriteria c2 = new CompareCriteria(new ElementSymbol("e2"), CompareCriteria.EQ, new Constant(new Integer(1))); //$NON-NLS-1$
        CompareCriteria c3 = new CompareCriteria(new ElementSymbol("e3"), CompareCriteria.EQ, new Constant(new Integer(3))); //$NON-NLS-1$
        CompoundCriteria cc1 = new CompoundCriteria(CompoundCriteria.AND, c2, c3);       
        CompoundCriteria cc2 = new CompoundCriteria(CompoundCriteria.OR, c1, cc1);
        Query q = new Query();
        q.setSelect(s);
        q.setFrom(f);
        q.setCriteria(cc2);
       
View Full Code Here

        From f = new From();
        f.addGroup(new GroupSymbol("m.g1")); //$NON-NLS-1$
        CompareCriteria c1 = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(0))); //$NON-NLS-1$
        CompareCriteria c2 = new CompareCriteria(new ElementSymbol("e2"), CompareCriteria.EQ, new Constant(new Integer(1))); //$NON-NLS-1$
        CompareCriteria c3 = new CompareCriteria(new ElementSymbol("e3"), CompareCriteria.EQ, new Constant(new Integer(3))); //$NON-NLS-1$
        CompoundCriteria cc1 = new CompoundCriteria(CompoundCriteria.AND, c1, c2);       
        CompoundCriteria cc2 = new CompoundCriteria(CompoundCriteria.OR, cc1, c3);
        Query q = new Query();
        q.setSelect(s);
        q.setFrom(f);
        q.setCriteria(cc2);
       
View Full Code Here

        Select s = new Select();
        s.addSymbol(new AllSymbol());
        From f = new From();
       
        CompareCriteria c1 = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(0))); //$NON-NLS-1$
        CompoundCriteria cc1 = new CompoundCriteria(CompoundCriteria.AND, c1, predCrit);
        JoinPredicate jp = new JoinPredicate(new UnaryFromClause(new GroupSymbol("m.g1")), new UnaryFromClause(new GroupSymbol("m.g2")), JoinType.JOIN_INNER, cc1); //$NON-NLS-1$ //$NON-NLS-2$
        f.addClause(jp);
       
        Query q = new Query();
        q.setSelect(s);
View Full Code Here

  private JoinPredicate rewriteJoinPredicate(Query parent, JoinPredicate predicate)
       throws TeiidComponentException, TeiidProcessingException{
    List joinCrits = predicate.getJoinCriteria();
    if(joinCrits != null && joinCrits.size() > 0) {
      //rewrite join crits by rewriting a compound criteria
      Criteria criteria = new CompoundCriteria(new ArrayList(joinCrits));
            joinCrits.clear();
            criteria = rewriteCriteria(criteria);
            if (criteria instanceof CompoundCriteria && ((CompoundCriteria)criteria).getOperator() == CompoundCriteria.AND) {
                joinCrits.addAll(((CompoundCriteria)criteria).getCriteria());
            } else {
View Full Code Here

            } else if (converted instanceof CompoundCriteria) {
                converted = rewriteCriteria((CompoundCriteria)converted, false);
            }
            List<Criteria> critList = null;
            if (converted instanceof CompoundCriteria) {
                CompoundCriteria other = (CompoundCriteria)converted;
                if (other.getOperator() == criteria.getOperator()) {
                  critList = other.getCriteria();
                }
            }
            if (critList == null) {
              critList = Arrays.asList(converted);
            }
          for (Criteria criteria2 : critList) {
            converted = criteria2;
                //begin boolean optimizations
                if(TRUE_CRITERIA.equals(converted)) {
                    if(operator == CompoundCriteria.OR) {
                        // this OR must be true as at least one branch is always true
                        return converted;
                    }
                } else if(FALSE_CRITERIA.equals(converted)) {
                    if(operator == CompoundCriteria.AND) {
                        // this AND must be false as at least one branch is always false
                        return converted;
                    }
                } else if (UNKNOWN_CRITERIA.equals(converted)) {
                    if (operator == CompoundCriteria.AND) {
                        return FALSE_CRITERIA;
                    }
                } else {
                    if (operator == CompoundCriteria.AND) {
                     converted = rewriteAndConjunct(converted, exprMap, newCrits);
                     if (converted != null) {
                       return converted;
                     }
                    } else {
                      //or
                      if (converted instanceof SetCriteria) {
                        SetCriteria sc = (SetCriteria)converted;
                        if (!sc.isNegated() && sc.isAllConstants()) {
                        Criteria crit = exprMap.get(sc.getExpression());
                        if (crit == null) {
                          exprMap.put(sc.getExpression(), sc);
                        } else if (crit instanceof SetCriteria) {
                          SetCriteria other = (SetCriteria)crit;
                          other.getValues().addAll(sc.getValues());
                          continue;
                        } else {
                          newCrits.remove(crit);
                          CompareCriteria cc = (CompareCriteria)crit;
                          sc.getValues().add(cc.getRightExpression());
                        }
                      }
                      } else if (converted instanceof CompareCriteria) {
                        CompareCriteria cc = (CompareCriteria)converted;
                        if (cc.getOperator() == CompareCriteria.EQ && cc.getRightExpression() instanceof Constant) {
                        Criteria crit = exprMap.get(cc.getLeftExpression());
                        if (crit == null) {
                          exprMap.put(cc.getLeftExpression(), cc);
                        } else if (crit instanceof SetCriteria) {
                          SetCriteria other = (SetCriteria)crit;
                          other.getValues().add(cc.getRightExpression());
                          continue;
                        } else {
                          newCrits.remove(crit);
                          CompareCriteria other = (CompareCriteria)crit;
                          SetCriteria sc = new SetCriteria(cc.getLeftExpression(), new LinkedHashSet<Expression>());
                          sc.setAllConstants(true);
                          sc.getValues().add(cc.getRightExpression());
                          sc.getValues().add(other.getRightExpression());
                          exprMap.put(sc.getExpression(), sc);
                          converted = sc;
                        }
                        }
                      }
View Full Code Here

                                                            criteria.isNegated() ? CompareCriteria.LT: CompareCriteria.GE,
                                                            criteria.getLowerExpression());
        CompareCriteria upperCriteria = new CompareCriteria(criteria.getExpression(),
                                                            criteria.isNegated() ? CompareCriteria.GT: CompareCriteria.LE,
                                                            criteria.getUpperExpression());
        CompoundCriteria newCriteria = new CompoundCriteria(criteria.isNegated() ? CompoundCriteria.OR : CompoundCriteria.AND,
                                                            lowerCriteria,
                                                            upperCriteria);

        return rewriteCriteria(newCriteria);
    }
View Full Code Here

        Expression[] args = tsCreateFunction.getArgs();
       
        // Rebuild the function
        CompareCriteria dateCrit = new CompareCriteria(args[0], CompareCriteria.EQ, new Constant(date, DataTypeManager.DefaultDataClasses.DATE));
        CompareCriteria timeCrit = new CompareCriteria(args[1], CompareCriteria.EQ, new Constant(time, DataTypeManager.DefaultDataClasses.TIME));       
        CompoundCriteria compCrit = new CompoundCriteria(CompoundCriteria.AND, dateCrit, timeCrit);
        return compCrit;                    
    }
View Full Code Here

TOP

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

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.