| split(AggregationNode, Rule.Context) |  | 0% |  | 0% | 4 | 4 | 51 | 51 | 1 | 1 |
| pushPartial(AggregationNode, ExchangeNode, Rule.Context) |  | 0% |  | 0% | 6 | 6 | 36 | 36 | 1 | 1 |
| apply(AggregationNode, Captures, Rule.Context) |  | 0% |  | 0% | 21 | 21 | 40 | 40 | 1 | 1 |
| partialAggregationNotUseful(AggregationNode, ExchangeNode, Rule.Context, int) |  | 0% |  | 0% | 8 | 8 | 14 | 14 | 1 | 1 |
| static {...} |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| PushPartialAggregationThroughExchange(FunctionAndTypeManager, boolean) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| storeStatsSourceInfo(Rule.Context, FeaturesConfig.PartialAggregationStrategy, PlanNode) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| isCostBased(Session) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| lambda$static$0(ExchangeNode) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| getStatsSource() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isLambda(RowExpression) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getPattern() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |