[
https://issues.apache.org/jira/browse/CALCITE-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16976087#comment-16976087
]
Xiening Dai commented on CALCITE-3503:
--------------------------------------
As I've mentioned multiple times, it's meaningless to do isValid() check if
root is NULL. The only possible case when root is NULL is during the very
beginning of volcano planning (setRoot() is called). At that moment, the memo
only contains a logical root note (and it's inputs in some cases). All best are
null and cost are infinite.
> NPE at VolcanoPlanner#isValid when DEBUG is enabled
> ---------------------------------------------------
>
> Key: CALCITE-3503
> URL: https://issues.apache.org/jira/browse/CALCITE-3503
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.21.0
> Reporter: Stamatis Zampetakis
> Priority: Blocker
> Labels: pull-request-available
> Fix For: 1.22.0
>
> Time Spent: 2h 50m
> Remaining Estimate: 0h
>
> The stacktrace is the following:
> {noformat}
> java.lang.NullPointerException
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.isValid(VolcanoPlanner.java:880)
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:870)
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:92)
> at
> org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:321)
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1701)
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.setRoot(VolcanoPlanner.java:298)
> at
> org.apache.calcite.tools.Programs.lambda$standard$3(Programs.java:269)
> {noformat}
> According to [~volodymyr] this is a regression caused by CALCITE-3487.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)