@Deprecated // to be removed before 2.0 public static RexNode simplifyAnd2(RexBuilder rexBuilder, List<RexNode> terms, List<RexNode> notTerms) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyAnd2(terms, notTerms); }
RexNode simplifyAnds(Iterable<? extends RexNode> nodes, RexUnknownAs unknownAs) { final List<RexNode> terms = new ArrayList<>(); final List<RexNode> notTerms = new ArrayList<>(); for (RexNode e : nodes) { RelOptUtil.decomposeConjunction(e, terms, notTerms); } simplifyList(terms, UNKNOWN); simplifyList(notTerms, UNKNOWN); if (unknownAs == FALSE) { return simplifyAnd2ForUnknownAsFalse(terms, notTerms); } return simplifyAnd2(terms, notTerms); }
RexNode simplifyAnds(Iterable<? extends RexNode> nodes, RexUnknownAs unknownAs) { final List<RexNode> terms = new ArrayList<>(); final List<RexNode> notTerms = new ArrayList<>(); for (RexNode e : nodes) { RelOptUtil.decomposeConjunction(e, terms, notTerms); } simplifyList(terms, UNKNOWN); simplifyList(notTerms, UNKNOWN); if (unknownAs == FALSE) { return simplifyAnd2ForUnknownAsFalse(terms, notTerms); } return simplifyAnd2(terms, notTerms); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyAnd2(RexBuilder rexBuilder, List<RexNode> terms, List<RexNode> notTerms) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyAnd2(terms, notTerms); }
RexNode simplifyAnd(RexCall e, RexUnknownAs unknownAs) { final List<RexNode> terms = new ArrayList<>(); final List<RexNode> notTerms = new ArrayList<>(); RelOptUtil.decomposeConjunction(e, terms, notTerms); if (unknownAs == FALSE && predicateElimination) { simplifyAndTerms(terms); } else { simplifyList(terms, unknownAs); } simplifyList(notTerms, UNKNOWN); // TODO could be unknownAs.negate()? switch (unknownAs) { case FALSE: return simplifyAnd2ForUnknownAsFalse(terms, notTerms, Comparable.class); } return simplifyAnd2(terms, notTerms); }
RexNode simplifyAnd(RexCall e, RexUnknownAs unknownAs) { final List<RexNode> terms = new ArrayList<>(); final List<RexNode> notTerms = new ArrayList<>(); RelOptUtil.decomposeConjunction(e, terms, notTerms); if (unknownAs == FALSE && predicateElimination) { simplifyAndTerms(terms); } else { simplifyList(terms, unknownAs); } simplifyList(notTerms, UNKNOWN); // TODO could be unknownAs.negate()? switch (unknownAs) { case FALSE: return simplifyAnd2ForUnknownAsFalse(terms, notTerms, Comparable.class); } return simplifyAnd2(terms, notTerms); }