[ 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], [~jinxing6...@126.com]! 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)