Class AddExchangesBelowPartialAggregationOverGroupIdRuleSet
- java.lang.Object
-
- io.trino.sql.planner.iterative.rule.AddExchangesBelowPartialAggregationOverGroupIdRuleSet
-
public class AddExchangesBelowPartialAggregationOverGroupIdRuleSet extends Object
Transforms- Exchange - [ Projection ] - Partial Aggregation - GroupIdto- Exchange - [ Projection ] - Partial Aggregation - GroupId - LocalExchange - RemoteExchangeRationale: GroupId increases number of rows (number of times equal to number of grouping sets) and then partial aggregation reduces number of rows. However, under certain conditions, exchanging the rows before GroupId (before multiplication) makes partial aggregation more effective, resulting in less data being exchanged afterwards.
-
-
Constructor Summary
Constructors Constructor Description AddExchangesBelowPartialAggregationOverGroupIdRuleSet(Metadata metadata, TypeOperators typeOperators, TypeAnalyzer typeAnalyzer, TaskCountEstimator taskCountEstimator, TaskManagerConfig taskManagerConfig)
-
-
-
Constructor Detail
-
AddExchangesBelowPartialAggregationOverGroupIdRuleSet
public AddExchangesBelowPartialAggregationOverGroupIdRuleSet(Metadata metadata, TypeOperators typeOperators, TypeAnalyzer typeAnalyzer, TaskCountEstimator taskCountEstimator, TaskManagerConfig taskManagerConfig)
-
-