[
https://issues.apache.org/jira/browse/DRILL-6767?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Arina Ielchiieva updated DRILL-6767:
------------------------------------
Fix Version/s: (was: 1.17.0)
> 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
> Priority: Minor
>
> 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).
> (8) For Hash-Agg: Perform COUNT (DRILL-6836)
> 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
(v8.3.4#803005)