structTAggregationNode{ 1: optionallist<Exprs.TExpr> grouping_exprs // aggregate exprs. The root of each expr is the aggregate function. // The other exprs are the inputs to the aggregate function. 2: requiredlist<Exprs.TExpr> aggregate_functions
// Tuple id used for intermediate aggregations // (with slots of agg intermediate types) 3: required Types.TTupleId intermediate_tuple_id
// Tupld id used for the aggregation output (with slots of agg output types) // Equal to intermediate_tuple_id if intermediate type == output type for all // aggregate functions. 4: required Types.TTupleId output_tuple_id
// Set to true if this aggregation function requires finalization to complete // after all rows have been aggregated, and this node is not an intermediate 5: requiredbool need_finalize 6: optionalbool use_streaming_preaggregation