Examples of SetCriteria


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

              } else if (!(crit instanceof IsNullCriteria)) {
                return FALSE_CRITERIA;
              }
          }
        } else if (converted instanceof SetCriteria) {
          SetCriteria sc = (SetCriteria)converted;
          Criteria crit = exprMap.get(sc.getExpression());
          if (crit instanceof IsNullCriteria) {
            return FALSE_CRITERIA;
          }
          if (!sc.isNegated() && sc.isAllConstants()) {
              if (crit == null) {
                exprMap.put(sc.getExpression(), converted);
              } else if (crit instanceof SetCriteria) {
                SetCriteria sc1 = (SetCriteria)crit;
                newCrits.remove(sc1);
                sc1.getValues().retainAll(sc.getValues());
                if (sc1.getValues().isEmpty()) {
                  return FALSE_CRITERIA;
                }
                //TODO: single value as compare criteria
                newCrits.add(sc1);
                exprMap.put(sc1.getExpression(), sc1);
                return null;
              } else {
                CompareCriteria cc = (CompareCriteria)crit;
                for (Iterator<Constant> exprIter = sc.getValues().iterator(); exprIter.hasNext();) {
            if (!Evaluator.compare(cc, exprIter.next().getValue(), ((Constant)cc.getRightExpression()).getValue())) {
              exprIter.remove();
            }
          }
                if (sc.getValues().isEmpty()) {
                  return FALSE_CRITERIA;
                }
                if (cc.getOperator() != CompareCriteria.EQ) {
                    newCrits.remove(cc);
                    //TODO: single value as compare criteria
                    exprMap.put(sc.getExpression(), sc);
                } else {
                  return null;
                }
              }
          }
        } else if (converted instanceof CompareCriteria) {
          CompareCriteria cc = (CompareCriteria)converted;
          Criteria crit = exprMap.get(cc.getLeftExpression());
          if (crit instanceof IsNullCriteria) {
            return FALSE_CRITERIA;
          }
          if (cc.getRightExpression() instanceof Constant) {
              if (crit == null) {
                exprMap.put(cc.getLeftExpression(), cc);
              } else if (crit instanceof SetCriteria) {
                SetCriteria sc = (SetCriteria)crit;
                boolean modified = false;
                for (Iterator<Constant> exprIter = sc.getValues().iterator(); exprIter.hasNext();) {
            if (!Evaluator.compare(cc, exprIter.next().getValue(), ((Constant)cc.getRightExpression()).getValue())) {
              if (!modified) {
                modified = true;
                newCrits.remove(sc);
              }
              exprIter.remove();
            }
          }
                //TODO: single value as compare criteria
                if (sc.getValues().isEmpty()) {
                  return FALSE_CRITERIA;
                }
                if (cc.getOperator() == CompareCriteria.EQ) {
                    exprMap.put(cc.getLeftExpression(), cc);
                } else if (modified) {
                  newCrits.add(sc);
                  exprMap.put(sc.getExpression(), sc);
                    return null;
                }
              } else {
                CompareCriteria cc1 = (CompareCriteria)crit;
                if (cc1.getOperator() == CompareCriteria.NE) {
View Full Code Here

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

   
    private void helpTestSetCriteria(Integer value, boolean negated, boolean expectedMatch) throws ExpressionEvaluationException, BlockedException, TeiidComponentException {
        Collection constants = new ArrayList(2);
        constants.add(new Constant(new Integer(1000)));
        constants.add(new Constant(new Integer(5000)));
        SetCriteria crit = new SetCriteria(new Constant(value), constants);
        crit.setNegated(negated);
        boolean result = Evaluator.evaluate(crit);
        assertEquals("Result did not match expected value", expectedMatch, result); //$NON-NLS-1$
    }
View Full Code Here

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

            }
            if (prefix.length() > 0) {
              this.addCondition(i, new Constant(prefix.toString()), CompareCriteria.GE);
            }
          } else if (criteria instanceof SetCriteria) {
            SetCriteria setCriteria = (SetCriteria)criteria;
            if (!setCriteria.getExpression().equals(keyColumn) || !setCriteria.isAllConstants()) {
              continue;
            }
            Collection<Constant> values = (Collection<Constant>) setCriteria.getValues();
            this.addSet(i, values);
          }
        }
      }
    }
View Full Code Here

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

        continue;
      }
      if (!(criteria instanceof SetCriteria)) {
        continue;
      }
      SetCriteria sc = (SetCriteria)criteria;
      HashSet<Constant> values = new HashSet<Constant>();
      boolean allConstants = true;
      for (Expression exp : (Collection<Expression>)sc.getValues()) {
        if (exp instanceof Constant) {
          values.add((Constant)exp);
        } else {
          allConstants = false;
          break;
        }
      }
      if (allConstants) {
        inMap.put(sc.getExpression(), values);
      }
    }
    Map<ElementSymbol, Set<Constant>> result = new HashMap<ElementSymbol, Set<Constant>>();
    for (int i = 0; i < projected.size(); i++) {
      Expression ex = SymbolMap.getExpression(projected.get(i));
View Full Code Here

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

        Criteria atomicCrit1 = null;
        Collection values = new LinkedList();
        values.add(new Constant(new Integer(3)));
        values.add(new Constant(new Integer(4)));
        values.add(new Constant(new Integer(5)));
        Criteria atomicCrit2 = new SetCriteria(g2e1, values);
        int expected = LEFT_SIDE;
        helpTestChooseSiblingAndMarkDependent(group1, atomicCrit1, group2, atomicCrit2, crits, expected);       
        expected = RIGHT_SIDE;
        helpTestChooseSiblingAndMarkDependent(group2, atomicCrit2, group1, atomicCrit1, crits, expected);       
    }    
View Full Code Here

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

        Expression constant1 = new Constant(new Integer(1000));
        Expression constant2 = new Constant(new Integer(5000));
        Collection constants = new ArrayList(2);
        constants.add(constant1);
        constants.add(constant2);
        Criteria crit = new SetCriteria(new ElementSymbol("b"), constants); //$NON-NLS-1$

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

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

        Expression constant1 = new Constant(new Integer(1000));
        Expression constant2 = new Constant(new Integer(5000));
        Collection constants = new ArrayList(2);
        constants.add(constant1);
        constants.add(constant2);
        SetCriteria crit = new SetCriteria(new ElementSymbol("b"), constants); //$NON-NLS-1$
        crit.setNegated(true);
        Query query = new Query();
        query.setSelect(select);
        query.setFrom(from);
        query.setCriteria(crit);
        helpTest("SELECT a FROM db.g WHERE b NOT IN (1000,5000)"//$NON-NLS-1$
View Full Code Here

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

    @Test public void testCompoundNonJoinCriteriaInFromUWithIN() {       
        Collection values = new ArrayList();
        values.add(new Constant(new Integer(0)));
        values.add(new Constant(new Integer(1)));
        PredicateCriteria crit = new SetCriteria(new ElementSymbol("e2"), values); //$NON-NLS-1$
        helpTestCompoundNonJoinCriteria("e2 IN (0, 1)", crit);     //$NON-NLS-1$
    }
View Full Code Here

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

            if (!(criteria instanceof AbstractSetCriteria)) {
                continue;
            }
           
            if (criteria instanceof SetCriteria) {
                SetCriteria setCriteria = (SetCriteria)criteria;
                if (setCriteria.isNegated() || setCriteria.getNumberOfValues() <= maxSetSize) {
                    continue;
                }
                SetState state = new SetState();
                setStates.put(i, state);
                LinkedHashSet<Object> values = new LinkedHashSet<Object>();
                for (Expression expr : (Collection<Expression>)setCriteria.getValues()) {
          values.add(eval.evaluate(expr, null));
        }
                state.valueIterator = new CollectionValueIterator(values);
                sources.add(Arrays.asList(state));
            } else if (criteria instanceof DependentSetCriteria) {
View Full Code Here

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

          for (int j = 0; j < maxSize && iter.hasNext(); j++) {
            Object val = iter.next();
                  vals.add(newConstant(val));
              }
             
              SetCriteria sc = new SetCriteria();
              sc.setExpression(crit.getExpression());
              sc.setValues(vals);
              orCrits.add(sc);
      }
      }
      if (orCrits.size() == 1) {
        return orCrits.get(0);
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.