Jinfeng Ni created DRILL-5159:
---------------------------------
Summary: ProjectMergeRule in Drill should operate on RelNodes with
same convention trait.
Key: DRILL-5159
URL: https://issues.apache.org/jira/browse/DRILL-5159
Project: Apache Drill
Issue Type: Bug
Components: Query Planning & Optimization
Reporter: Jinfeng Ni
Drill extended version of Calcite's ProjectMergeRule is used in a
VolcanoPlanner where RelNodes with different convention could match with this
rule.
For instance, we could see this rule could be invoked when a DrillProject on
top of a LogicalProject. Also, since the output RelNode is built from the
default Project RelFactory, such rule execution could end up with a
LogicalProject.
{code}
DrillProject transform
\ ===> LogicalProject
LogicalProject
{code}
This leads to un-necessary rule execution, or in certain case could lead to an
infinite loop.
The proposed fix is to check matched RelNodes to make sure that they do have
Calcite Logical convention. That way, both inputs and output of this rule would
have same convention trait. This should reduce planning time, and avoid the
possiblity of loop.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)