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