Mihai Budiu created CALCITE-7070: ------------------------------------ Summary: FILTER_REDUCE_EXPRESSIONS crashes on expression BETWEEN ( NULL) AND ... Key: CALCITE-7070 URL: https://issues.apache.org/jira/browse/CALCITE-7070 Project: Calcite Issue Type: Bug Components: core Affects Versions: 1.40.0 Reporter: Mihai Budiu
The following test inserted in RelOptRulesTest crashes: {code} final String sql = "SELECT + 54 FROM emp WHERE NOT CAST ( CAST(empno AS DOUBLE) AS INTEGER ) NOT BETWEEN ( NULL ) AND 89"; sql(sql) .withRule(CoreRules.FILTER_REDUCE_EXPRESSIONS) .check(); {code} stack trace: {code} java.lang.AssertionError: value must not be null in null:INTEGER at org.apache.calcite.rex.RexSimplify.residue(RexSimplify.java:1968) at org.apache.calcite.rex.RexSimplify.simplifyUsingPredicates(RexSimplify.java:1909) at org.apache.calcite.rex.RexSimplify.simplifyComparison(RexSimplify.java:655) at org.apache.calcite.rex.RexSimplify.simplifyComparison(RexSimplify.java:517) at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:313) at org.apache.calcite.rex.RexSimplify.simplifyAndTerms(RexSimplify.java:694) at org.apache.calcite.rex.RexSimplify.simplifyAnd(RexSimplify.java:1559) at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:282) at org.apache.calcite.rex.RexSimplify.simplifyNot(RexSimplify.java:761) at org.apache.calcite.rex.RexSimplify.simplify(RexSimplify.java:286) at org.apache.calcite.rex.RexSimplify.simplifyUnknownAs(RexSimplify.java:251) at org.apache.calcite.rex.RexSimplify.simplifyPreservingType(RexSimplify.java:190) at org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(ReduceExpressionsRule.java:722) at org.apache.calcite.rel.rules.ReduceExpressionsRule$FilterReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:159) {code} This test is modified from SqlLogicTest. -- This message was sent by Atlassian Jira (v8.20.10#820010)