[ 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)