drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jinfeng Ni (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DRILL-5159) ProjectMergeRule in Drill should operate on RelNodes with same convention trait.
Date Fri, 23 Dec 2016 22:31:58 GMT
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)

Mime
View raw message