[ https://issues.apache.org/jira/browse/CALCITE-3972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17116954#comment-17116954 ]
Roman Kondakov edited comment on CALCITE-3972 at 5/26/20, 6:24 PM: ------------------------------------------------------------------- I agree with [~hyuan]. I also think we should not register logical converters (LogicalSort without limit and offset or LogicalExchange) in the planner's MEMO at all. As it implemented in my pet cascades-style optimizer. It helps to avoid not-needed multiple RelSets merging and rules firing. All physical properties should be enforced by physical converters only at the final step of Group (RelSet) optimization. was (Author: rkondakov): I agree with [~hyuan]. I also think we should not register logical converters (LogicalSort or LogicalExchange) in the planner's MEMO at all. As it implemented in my pet cascades-style optimizer. It helps to avoid not-needed multiple RelSets merging and rules firing. All physical properties should be enforced by physical converters only at the final step of Group (RelSet) optimization. > Allow RelBuilder to create RelNode with convention and use it for trait > convert > ------------------------------------------------------------------------------- > > Key: CALCITE-3972 > URL: https://issues.apache.org/jira/browse/CALCITE-3972 > Project: Calcite > Issue Type: Bug > Reporter: Xiening Dai > Assignee: Xiening Dai > Priority: Major > Time Spent: 2h > Remaining Estimate: 0h > > 1. Provide Convention.transformRelBuilder() to transform an existing > RelBuilder into one with specific convention. > 2. RelBuilder provides withRelFactories() method to allow caller swap the > underlying RelFactories and create a new builder. > 3. Use the new interface in RelCollationTraitDef for converting into > RelCollation traits > We can avoid ~1/3 of total rule firings in a N way join case with this change. -- This message was sent by Atlassian Jira (v8.3.4#803005)