richardstartin commented on pull request #7820:
URL: https://github.com/apache/pinot/pull/7820#issuecomment-982559015


   > Some methods added to projectionBlock seem to be specific to 
projectionBlock and is deviating from the block concept of chaining any blocks 
together i.e. the caller of the block does not understand the implementation of 
the underlying block. We have violated this in few places and we should fix 
that. It might be a good idea to enhance the Block interface to allow a 
pushdown evaluator.
   
   @kishoreg this has been deviated from significantly already, and in many 
`Block` implementations there would be no sensible implementation but to throw 
`UnsupportedOperationException` which breaks LSP anyway. 
   
   I also want to call out that there appears to be an element of complexity 
which you may have missed: `TransformFunction` isn't guaranteed to operate on 
directly on storage, it may also operate on the output of some other JSON 
function (I added a test for this) - when that happens, there needs to be an 
implementation which can operate on values produced by another 
`TransformFunction`. This (to push down or evaluate directly) is a decision 
which can only be made in the query layer. I'm not sure if you didn't mention 
this because it makes sense already or not.


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to