[ 
https://issues.apache.org/jira/browse/CALCITE-2970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16962007#comment-16962007
 ] 

jin xing commented on CALCITE-2970:
-----------------------------------

[~zabetak] [~hyuan] Thanks a lot for your shepherd and sorry for my late reply 
(I missed the Jira notice from my email)

I think the root cause is as below :
1. In design&impl of {{VolcanoRuleCall#matchRecurse}}, a rule is triggered when 
the root operand or child operand get matched by a new created/registered 
{{RelNode. }}Relying on expansion of AbstractConverter means more fires for the 
optimizing rules

2. Currently optimizing process for physical node operator like EnumerableXXX 
and logical node like LogicalXXX are mixed together, thus operator with the 
same semantics are optimized for multiple times. This problem is also mentioned 
in https://issues.apache.org/jira/browse/CALCITE-3353  Personally I think it 
might make sense to make the optimizing process into two phases – – logical 
phase and physical phase

 

> Performance issue when enabling abstract converter for EnumerableConvention
> ---------------------------------------------------------------------------
>
>                 Key: CALCITE-2970
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2970
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Haisheng Yuan
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> If we enable the use of abstract converter for {{EnumerableConvention}}, by 
> making {{useAbstractConvertersForConversion}} return true, 
> {{JDBCTest.testJoinManyWay}} will not complete.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to