[
https://issues.apache.org/jira/browse/CALCITE-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16976221#comment-16976221
]
Danny Chen commented on CALCITE-3503:
-------------------------------------
I don't think it is meaningless to do `isValid()` check if root is NULL which
is the only change that the root node can be checked. For "logical nodes", the
cost are always INFINITE, but the check not only check the cost right ? It also
check the cyclic reference of memos. And we always do the `isValid()` check
for "logical nodes".
Another point i want to strength is that we do not need a fresh new
`RelMetadataQuery` instance and the method ``
> 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)