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)

Reply via email to