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

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

Will create a new JIRA.

{quote}
Struct's constructor should remain private (otherwise it will break every time 
we add a new type of RelNode);
{quote}

In order to create FOO_STRUCT, we will need to access the constructor. 
Otherwise, the only way to overwrite the factories would be through 
fromContext().

{quote}
Change setRelFactoriesStruct to withFactories and make it create a new 
RelBuilder with different config and factories but sharing the same stack of 
RelNodes;
{quote}

I am still not sure why we cannot just reuse the RelBuidler object. Is there a 
scenario or a contract we will break? Also with the adopt() method, caller is 
asking for switching convention explicitly. Right now all the rules are using 
LOGICAL_BUILDER by default. If we create a new object every time when needs a 
different convention, there would be a lot more objects to manage.

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