[ 
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)

Reply via email to