You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Boaz Ben-Zvi (Jira)" <ji...@apache.org> on 2019/11/05 02:50:00 UTC

[jira] [Commented] (DRILL-6767) Simplify transfer of information from the planner to the operators

    [ https://issues.apache.org/jira/browse/DRILL-6767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16967173#comment-16967173 ] 

Boaz Ben-Zvi commented on DRILL-6767:
-------------------------------------

Postpone the work as it does not give an immediate benefit (maybe can be done along with another work mentioned above, like broadcast hash join, or skip unneeded join columns).

 

> 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 &amp; Optimization
>    Affects Versions: 1.14.0
>            Reporter: Boaz Ben-Zvi
>            Assignee: Boaz Ben-Zvi
>            Priority: Minor
>             Fix For: Future
>
>
> 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)