[ https://issues.apache.org/jira/browse/CALCITE-3972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17104091#comment-17104091 ]
Julian Hyde commented on CALCITE-3972: -------------------------------------- Simplest thing for the user would be {{RelBuilder.adoptConvention(convention)}}. User isn't interested in {{RelFactories}} or {{Struct}}. A {{Convention}} ought to know what factories it needs. I added {{Struct}} to make the implementation more efficient - so that only one pointer would need to be assigned when creating a {{RelBuilder}} rather than a dozen or so, one for each factory - and I don't think that {{Struct}} should become a user concept. > 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 > Fix For: 1.23.0 > > Time Spent: 1h 40m > 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)