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:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to