[
https://issues.apache.org/jira/browse/CALCITE-3916?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17174374#comment-17174374
]
Ruben Q L commented on CALCITE-3916:
------------------------------------
[~FatLittle], [~hyuan], FYI, I have a prototype with TopDown activated, and
recently I updated it and this change causes a {{ClassCastException}} here:
https://github.com/apache/calcite/blob/aadb605decd6bb6a853e23fac4b0f479b2397e06/core/src/main/java/org/apache/calcite/plan/volcano/TopDownRuleDriver.java#L548
with message:
{code}
...
Caused by: java.lang.ClassCastException: MyTableScanOperator cannot be cast to
com.onwbp.org.apache.calcite.plan.volcano.RelSubset
at
com.onwbp.org.apache.calcite.plan.volcano.TopDownRuleDriver.getOptimizeInputTask(TopDownRuleDriver.java:548)
...
{code}
Does it make sense, or maybe I am doing something wrong in my prototype? (I do
not know if I can reproduce the situation with a unit test in Calcite)
> Support cascades style top-down driven rule apply
> -------------------------------------------------
>
> Key: CALCITE-3916
> URL: https://issues.apache.org/jira/browse/CALCITE-3916
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Haisheng Yuan
> Assignee: Jinpeng Wu
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.24.0
>
> Time Spent: 15.5h
> Remaining Estimate: 0h
>
> Apply rules by leaf RelSet -> root RelSet order. For every RelNode in a
> RelSet, rule is matched and applied sequentially. No RuleQueue and
> DeferringRuleCall is needed anymore. This will make space pruning and rule
> mutual exclusivity check possible.
> Rule that use AbstractConverter as operand is an exception, to keep backward
> compatibility, this kind of rule still needs top-down apply.
> This should be done after CALCITE-3896.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)