[ https://issues.apache.org/jira/browse/CALCITE-2970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17076938#comment-17076938 ]
Haisheng Yuan commented on CALCITE-2970: ---------------------------------------- RelBuilder should be used for logical operators only, for the following 2 reasons: - RelBuilder can be used as an alternative to SQL text, so that we can build a query tree without parsing SQL query, in which case only logical tree is needed. - Calcite has lots of logical transformation rules that are used by many different downstream projects. RelBuilder provides a unified way to pave the difference between different logical operators across different system so that different systems like Flink, Drill can share these transformation rules by just providing their own logical RelBuilder. But physical implementation rules are not shared, each system has its own implementation rule with its own physical operator. I don't see there is a need to have a physical RelBuilder. It is quite natural for the Convention to participate the enforcement, because it knows exactly what physical operator to create for a RelTrait. > 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: 12h > 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)