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