[
https://issues.apache.org/jira/browse/CALCITE-2970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16963783#comment-16963783
]
Stamatis Zampetakis commented on CALCITE-2970:
----------------------------------------------
Thanks for the analysis [~xndai], [[email protected]]! I also think that
creating a {{LogicalSort}} is not a very good idea. Going towards this
direction I think we should reconsider where conversions happen and maybe the
API of the {{RelTraitDef}}.
Typically when a converter/enforcer operator is introduced it rarely affects
only one kind of physical properties. For instance, when an {{EnumerableSort}}
is introduced it affects both convention and collation properties. Similar for
an {{EnumerableExchange}} (doesn't exist at the moment) or an
{{EnumerableSortExchange}} (doesn't exist at the moment).
Due to the above I have the impression that conversions shouldn't be part of
the RelTraitDef API.
On the other hand the rule introducing a converter/enforcer operator (e.g., the
{{EnumerableSort}}) knows exactly which properties need to match and change. So
the EnumerableSortRule is applied only on {{RelNode}}s which need to enforce
the EnumerableConvention and necessarily some collation other than
{{RelCollations.EMPTY}}. This comes a bit in contrast with what you mentioned
earlier:
{quote} the framework would need to provide a way to create a physical node
with given convention not through user rules
{quote}
I didn't spend much time on this problem so apologies if what I am saying does
not make sense.
> 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: 1h 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)