/** Simplifies a boolean expression, always preserving its type and its * nullability. * * <p>This is useful if you are simplifying expressions in a * {@link Project}. */ public RexNode simplifyPreservingType(RexNode e) { return simplifyPreservingType(e, defaultUnknownAs); }
/** Simplifies a boolean expression, always preserving its type and its * nullability. * * <p>This is useful if you are simplifying expressions in a * {@link Project}. */ public RexNode simplifyPreservingType(RexNode e) { return simplifyPreservingType(e, defaultUnknownAs, true); }
/** Simplifies a boolean expression, always preserving its type and its * nullability. * * <p>This is useful if you are simplifying expressions in a * {@link Project}. * * @deprecated Use {@link RexSimplify#simplifyPreservingType(RexNode)}, * which allows you to specify an {@link RexExecutor}. */ @Deprecated // to be removed before 2.0 public static RexNode simplifyPreservingType(RexBuilder rexBuilder, RexNode e) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyPreservingType(e); }
/** Simplifies a boolean expression, always preserving its type and its * nullability. * * <p>This is useful if you are simplifying expressions in a * {@link Project}. * * @deprecated Use {@link RexSimplify#simplifyPreservingType(RexNode)}, * which allows you to specify an {@link RexExecutor}. */ @Deprecated // to be removed before 2.0 public static RexNode simplifyPreservingType(RexBuilder rexBuilder, RexNode e) { return new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, EXECUTOR) .simplifyPreservingType(e); }
final RexSimplify simplify = new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, RexUtil.EXECUTOR); expr = simplify.simplifyPreservingType(expr);
nodeList.set(i, simplifier.simplifyPreservingType(nodeList.get(i)));
nodeList.set(i, simplifier.simplifyPreservingType(nodeList.get(i)));
for (int i = 0; i < expList.size(); i++) { final RexNode expr2 = simplify.simplifyPreservingType(expList.get(i), unknownAs, matchNullability); if (!expr2.equals(expList.get(i))) {
f.simplify.simplifyPreservingType(e, RexUnknownAs.UNKNOWN, true) .toString(), is("CAST(2014):JavaType(class java.lang.Integer)")); assertThat( f.simplify.simplifyPreservingType(e, RexUnknownAs.UNKNOWN, false) .toString(), is("2014")); f.cast(notNullIntRelDataType, f.literal(2014))); assertThat( f.simplify.simplifyPreservingType(e2, RexUnknownAs.UNKNOWN, true) .toString(), is("2014")); assertThat( f.simplify.simplifyPreservingType(e2, RexUnknownAs.UNKNOWN, false) .toString(), is("2014"));
f.rexBuilder.makeFlag(timeUnitRanges.get(j))); final RexCall floorSimplifiedExpr = (RexCall) f.simplify.simplifyPreservingType(outerFloorCall, RexUnknownAs.UNKNOWN, true); assertThat(floorSimplifiedExpr.getKind(), is(SqlKind.FLOOR)); is(literalTs.toString())); final RexCall ceilSimplifiedExpr = (RexCall) f.simplify.simplifyPreservingType(outerCeilCall, RexUnknownAs.UNKNOWN, true); assertThat(ceilSimplifiedExpr.getKind(), is(SqlKind.CEIL)); f.rexBuilder.makeFlag(timeUnitRanges.get(j))); final RexCall floorSimplifiedExpr = (RexCall) f.simplify.simplifyPreservingType(outerFloorCall, RexUnknownAs.UNKNOWN, true); assertThat(floorSimplifiedExpr.toString(), is(outerFloorCall.toString())); final RexCall ceilSimplifiedExpr = (RexCall) f.simplify.simplifyPreservingType(outerCeilCall, RexUnknownAs.UNKNOWN, true); assertThat(ceilSimplifiedExpr.toString(), is(outerCeilCall.toString()));