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

Xiening Dai commented on CALCITE-2970:
--------------------------------------

[~hyuan] I have to admit that your proposal would simply the change. If there's 
one thing we both agree, it's that the framework should be able to create 
RelNode with particular convention during enforcement. The question is where, 
or which class should be responsible for that.

To me, unless we believe RelBuilder should always create logical RelNodes (if 
that's the case, I'd love to know why), the most nature way is to extend 
RelBuilder so a convention can be taken into account. I consider this as one of 
the basic building blocks, and it can be useful more than just enforcement. For 
example, we use RelNode.copy() a lot today simply because RelBuilder only 
creates logical nodes. Also the implementation rule can be simplified if we 
have it in place. This is one big reason that I don't want to tight it with 
enforcement.

Regarding Convention.enforce(), sure it would work. But it feels odd to me that 
convention would be part of enforcement and has such a method. Also this would 
mean duplicate codes across conventions since the only different between them 
would be the actual RelNode class being used.



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