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

Danny Chen commented on CALCITE-2970:
-------------------------------------

Thanks [~xndai] for driving this ~
Some thoughts from my side:

* Modify the RelBuilder directly makes the RelBuilder too complex to use, i 
still think the builder only needs to build logical nodes, the node with a 
convention is an implementation thing and it's the duty of 
AbstractRelOptPlanner to make the desired convention tree.
* With your change, we need to register a factory for specific convention node, 
while what we do inside is not "building a rel node" but "change a node 
convention", the introduced mechanism is too heavy and it happens where it 
shouldn't.
* The RelBuilderFactory changes from an intertface to impl class so that we can 
not use it as a lambda which is a breaking change.
* Compared to RelFactories.LOGICAL_BUILDER, RelFactories.DEFAULT_BUILDER is a 
bad name, the keyword `default` means nothing.

> 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: 11h 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