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]