/** Simplifies a list of terms and combines them into an OR. * Modifies the list in place. * The simplified expression returns UNKNOWN values as is (not as FALSE). */ public RexNode simplifyOrs(List<RexNode> terms) { return simplifyOrs(terms, UNKNOWN); }
/** Simplifies a list of terms and combines them into an OR. * Modifies the list in place. * The simplified expression returns UNKNOWN values as is (not as FALSE). */ public RexNode simplifyOrs(List<RexNode> terms) { return simplifyOrs(terms, UNKNOWN); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyOrs(RexBuilder rexBuilder, List<RexNode> terms) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyOrs(terms); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyOrs(RexBuilder rexBuilder, List<RexNode> terms) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyOrs(terms); }
private RexNode simplifyOr(RexCall call, RexUnknownAs unknownAs) { assert call.getKind() == SqlKind.OR; final List<RexNode> terms = RelOptUtil.disjunctions(call); if (predicateElimination) { simplifyOrTerms(terms); } return simplifyOrs(terms, unknownAs); }
private RexNode simplifyOr(RexCall call, RexUnknownAs unknownAs) { assert call.getKind() == SqlKind.OR; final List<RexNode> terms = RelOptUtil.disjunctions(call); if (predicateElimination) { simplifyOrTerms(terms); } return simplifyOrs(terms, unknownAs); }
final RelOptPredicateList predicates = RelOptPredicateList.EMPTY; RexNode disjPred = new RexSimplify(rexBuilder, predicates, executor) .simplifyOrs(finalResidualPreds); if (!disjPred.isAlwaysTrue()) { preds.add(disjPred);
final RexNode before = RexUtil.composeDisjunction(rexBuilder, terms); return verify(before, unknownAs, simplifier -> simplifier.simplifyOrs(terms, unknownAs));
final RexNode before = RexUtil.composeDisjunction(rexBuilder, terms); return verify(before, unknownAs, simplifier -> simplifier.simplifyOrs(terms, unknownAs));
RexNode disjunctivePredicate = new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, executor) .simplifyOrs(finalResidualPredicates); if (!disjunctivePredicate.isAlwaysTrue()) { predicates.add(disjunctivePredicate);