Util.first(filterRel.getCluster().getPlanner().getExecutor(), RexUtil.EXECUTOR); final RexSimplify simplify = new RexSimplify(rexBuilder, true, executor); final RexNode x = simplify.simplifyAnds(listBuilder.build()); if (x.isAlwaysFalse()) {
/** Returns a RexSimplify the same as this but which verifies that * the expression before and after simplification are equivalent. * * @see #verify */ public RexSimplify withParanoid(boolean paranoid) { return paranoid == this.paranoid ? this : new RexSimplify(rexBuilder, predicates, defaultUnknownAs, predicateElimination, paranoid, executor); }
/** Returns a RexSimplify the same as this but with a specified * {@link #predicates} value. */ public RexSimplify withPredicates(RelOptPredicateList predicates) { return predicates == this.predicates ? this : new RexSimplify(rexBuilder, predicates, defaultUnknownAs, predicateElimination, paranoid, executor); }
/** Returns a RexSimplify the same as this but which verifies that * the expression before and after simplification are equivalent. * * @see #verify */ public RexSimplify withParanoid(boolean paranoid) { return paranoid == this.paranoid ? this : new RexSimplify(rexBuilder, predicates, defaultUnknownAs, predicateElimination, paranoid, executor); }
/** Returns a RexSimplify the same as this but with a specified * {@link #predicates} value. */ public RexSimplify withPredicates(RelOptPredicateList predicates) { return predicates == this.predicates ? this : new RexSimplify(rexBuilder, predicates, defaultUnknownAs, predicateElimination, paranoid, executor); }
/** Returns a RexSimplify the same as this but with a specified * {@link #predicateElimination} value. * * <p>This is introduced temporarily, until * {@link Bug#CALCITE_2401_FIXED [CALCITE-2401] is fixed}. */ private RexSimplify withPredicateElimination(boolean predicateElimination) { return predicateElimination == this.predicateElimination ? this : new RexSimplify(rexBuilder, predicates, defaultUnknownAs, predicateElimination, paranoid, executor); }
/** * Simplifies a boolean expression, leaving UNKNOWN values as UNKNOWN, and * using the default executor. * * @deprecated Create a {@link RexSimplify}, then call its * {@link RexSimplify#simplify(RexNode, RexUnknownAs)} method. */ @Deprecated // to be removed before 2.0 public static RexNode simplify(RexBuilder rexBuilder, RexNode e) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplify(e); }
@Deprecated // to be removed before 2.0 public RexProgram normalize(RexBuilder rexBuilder, boolean simplify) { final RelOptPredicateList predicates = RelOptPredicateList.EMPTY; return normalize(rexBuilder, simplify ? new RexSimplify(rexBuilder, predicates, RexUtil.EXECUTOR) : null); }
/** * Simplifies a boolean expression, leaving UNKNOWN values as UNKNOWN, and * using the default executor. * * @deprecated Create a {@link RexSimplify}, then call its * {@link RexSimplify#simplify(RexNode, RexUnknownAs)} method. */ @Deprecated // to be removed before 2.0 public static RexNode simplify(RexBuilder rexBuilder, RexNode e) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplify(e); }
@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 simplifyAnd2(RexBuilder rexBuilder, List<RexNode> terms, List<RexNode> notTerms) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .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); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyOr(RexBuilder rexBuilder, RexCall call) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyOr(call); }
@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); }
/** Returns a RexSimplify the same as this but with a specified * {@link #defaultUnknownAs} value. * * @deprecated Use methods with a {@link RexUnknownAs} argument, such as * {@link #simplify(RexNode, RexUnknownAs)}. */ @Deprecated // to be removed before 2.0 public RexSimplify withUnknownAsFalse(boolean unknownAsFalse) { final RexUnknownAs defaultUnknownAs = RexUnknownAs.falseIf(unknownAsFalse); return defaultUnknownAs == this.defaultUnknownAs ? this : new RexSimplify(rexBuilder, predicates, defaultUnknownAs, predicateElimination, paranoid, executor); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyOr(RexBuilder rexBuilder, RexCall call) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyOr(call); }
@Deprecated // to be removed before 2.0 public RexProgram normalize(RexBuilder rexBuilder, boolean simplify) { final RelOptPredicateList predicates = RelOptPredicateList.EMPTY; return normalize(rexBuilder, simplify ? new RexSimplify(rexBuilder, predicates, RexUtil.EXECUTOR) : null); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyAnds(RexBuilder rexBuilder, Iterable<? extends RexNode> nodes, boolean unknownAsFalse) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyAnds(nodes, RexUnknownAs.falseIf(unknownAsFalse)); }
@Deprecated // to be removed before 2.0 public static RexNode simplifyAnd(RexBuilder rexBuilder, RexCall e, boolean unknownAsFalse) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyAnd(e, RexUnknownAs.falseIf(unknownAsFalse)); }
private RexNode simplify(RexNode e) { final RexSimplify simplify = new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, RexUtil.EXECUTOR) .withParanoid(true); return simplify.simplifyUnknownAs(e, RexUnknownAs.UNKNOWN); }