mayankshriv opened a new pull request #5339:
URL: https://github.com/apache/incubator-pinot/pull/5339


   With aggregation functions now taking multiple agruments, only the functions 
themselves
   have the knowledge on how to interpret these arguments. This poses a problem 
for the planning
   phase on what columns need to be projected and what expressions need to be 
computed.
   With this change, AggregationFunction's are now responsible for providing 
what inputs they need.
   
   1. Added a new api in AggregationFunction interface `getInputExpressions()`, 
that returns a list
      of compiled TransformExpressionTrees that the aggregation function needs 
as input to compute.
   
   2. Cleaned up the chaining data dependency during planning phase. Before 
this PR, all planning nodes
      receive the BrokerRequest (and pass to their child plan node) to extract 
out all information needed.
      With this change:
      - Aggregation plan nodes only specify the expression trees they need from 
Transform plan nodes, and
        Transform plan nodes use that to specify what columns they need from 
projection plan nodes.
   
   TODO: Ideally we should completely eliminate passing of BrokerRequest 
throughout the chain plan nodes,
   and only pass minimal information instead. This change only does so for 
projection columns. A TODO here
   is to extend it to FilterPlanNode and deeper.


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



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

Reply via email to