You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Volodymyr Vysotskyi (JIRA)" <ji...@apache.org> on 2017/11/01 16:04:00 UTC

[jira] [Created] (CALCITE-2026) AssertionError when ProjectReduceExpressionsRule simplifies project expressions

Volodymyr Vysotskyi created CALCITE-2026:
--------------------------------------------

             Summary: AssertionError when ProjectReduceExpressionsRule simplifies project expressions
                 Key: CALCITE-2026
                 URL: https://issues.apache.org/jira/browse/CALCITE-2026
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Volodymyr Vysotskyi
            Assignee: Julian Hyde
            Priority: Major


When applying ProjectReduceExpressionsRule on project which expression has a non-nullable type, but after simplifying expression is null, the query fails with the assertion error:
{noformat}
java.lang.AssertionError: Type mismatch:
rel rowtype:
RecordType(INTEGER EXPR$0) NOT NULL
equivRel rowtype:
RecordType(INTEGER NOT NULL EXPR$0) NOT NULL
	at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.RelOptUtil.equal(RelOptUtil.java:1868) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:855) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:883) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:1767) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:135) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:234) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.rel.rules.ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(ReduceExpressionsRule.java:268) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:212) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:650) ~[calcite-core-1.13.0.jar:1.13.0]
	at org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:368) ~[calcite-core-1.13.0.jar:1.13.0]
{noformat}

The similar bug was described in CALCITE-1502, since there was a problem with non-nullable and nullable types in different case branches, but this bug appears when project expression is transformed into the expression with nullable type.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)