Boaz Ben-Zvi created DRILL-6767:
-----------------------------------
Summary: Simplify transfer of information from the planner to the
operators
Key: DRILL-6767
URL: https://issues.apache.org/jira/browse/DRILL-6767
Project: Apache Drill
Issue Type: Improvement
Components: Execution - Relational Operators, Query Planning &
Optimization
Affects Versions: 1.14.0
Reporter: Boaz Ben-Zvi
Assignee: Boaz Ben-Zvi
Fix For: 1.15.0
Currently little specific information known to the planner is passed to the
operators. For example, see theĀ `joinType` parameter passed to the Join
operators (specifying whether this is a LEFT, RIGHT, INNER of FULL join).
The relevant code passes this information explicitly via the constructors'
signature (e.g., see HashJoinPOP, AbstractJoinPop, etc), and uses specific
fields for this information, and affects all the test code using it, etc.
In the near future many more such "pieces of information" will possibly be
added to Drill, including:
(1) Is this a Semi (or Anti-Semi) join.
(2) `joinControl`
(3) `isRowKeyJoin`
(4) `isBroadcastJoin`
(5) Which join columns are not needed (DRILL-6758)
(6) Is this operator positioned between Lateral and UnNest.
(7) For Hash-Agg: Which phase (already implemented).
Each addition of such information would require a significant code change, and
add some code clutter.
*Suggestion*: Instead pass a single object containing all the needed planner
information. So the next time another field is added, only that object needs to
be changed. (Ideally the whole plan could be passed, and then each operator
could poke and pick its needed fields)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)