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