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

ASF GitHub Bot commented on DRILL-7503:
---------------------------------------

paul-rogers commented on issue #1944: DRILL-7503: Refactor the project operator
URL: https://github.com/apache/drill/pull/1944#issuecomment-570763354
 
 
   @ihuzenko, good suggestion on `VectorState`: my original thought was to make 
it a static class, then move it to its own file. Then I thought better of it. 
You'll notice that, at present, it is kind of a "shim" class to expose certain 
operations on the vector objects to the "materializer" without making the 
entire project operator visible. In particular, it is an inner class so it can 
tinker with project operator state.
   
   We could accomplish the same thing by defining an interface which 
`ProjectRecordBatch` would implement. But, in that case, all the complex setup 
logic would be back in the project operator, undoing the separation we just 
accomplished. So, the interface approach feels not quite right.
   
   I agree that this can be improved, but I don't yet see an obvious move that 
leaves the code simpler. So, I thought to just leave it as is for now.
   
   Maybe it can evolve to own the allocation vectors, complex writers and so 
on. These are the kinds of questions we can ask now that we can start to see 
the pieces rather than just a big mess. Suggestions?
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Refactor project operator
> -------------------------
>
>                 Key: DRILL-7503
>                 URL: https://issues.apache.org/jira/browse/DRILL-7503
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.17.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>            Priority: Minor
>             Fix For: 1.18.0
>
>
> Work on another ticket revealed that the Project operator ("record batch") 
> has grown quite complex. The setup phase lives in the operator as one huge 
> function. The function combines the "logical" tasks of working out the 
> projection expressions and types, the code gen for those expressions, and the 
> physical setup of vectors.
> The refactoring breaks up the logic so that it is easier to focus on the 
> specific bits of interest.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to