[
https://issues.apache.org/jira/browse/CALCITE-2970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17069128#comment-17069128
]
Xiening Dai commented on CALCITE-2970:
--------------------------------------
[~hyuan][~zabetak][~julianhyde] I create a pull request which attempts to
address the issue that LogicalSort, instead of EnumerableSort, is created in
this case. The core idea is to allow register RelNode factories for different
conventions. Note that currently we only have factories for logical RelNode
(such as DEFAULT_SORT_FACTORY in RelFactories.java), thus can only create
logical nodes even if the convention is specified. Once we have the RelNode
factories available, the trait convert logic will just involve RelBuilder to
create RelNode with given convention.
There's one big question is how we can expose an interface so the adapters can
register their own factories. A new interface on Planner might be required. I
would like to hear suggestions from you. Right now I just register enumerable
factories during planner initialization, since enumerable is part of Calcite
core.
With this change, we are able to turn on useAbstractConvertersForConversion and
generate merge join plan. Based on my test, I see 10X speed up on a 10 way join
case.
Please consider the change as Work In Progress. I still need to clean up the
code and update a bunch of test cases. But would like to get some early
feedback on the general direction. Thanks.
> 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: 6h 50m
> 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)