[ https://issues.apache.org/jira/browse/CALCITE-3972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17101205#comment-17101205 ]
Julian Hyde commented on CALCITE-3972: -------------------------------------- RelBuilder isn't just used in rules. It is used for larger tasks, like SqlToRelConverter. And it is the recommended translator if someone has built a front end based on their own query language. We want RelBuilder's lifecycle to be simple and predictable when translating a complex query into dozens or hundreds of RelNodes. There might be multiple conventions in such queries. > 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: 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)