| selectOptimalJoinShuffleKeysFromPairs(List, Pair, Statistics, Statistics, double, double, int) |   | 17% |   | 22% | 16 | 19 | 35 | 40 | 0 | 1 |
| getJoinPairStringAvgSizeForSort(Pair, Statistics, Statistics) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| getStringAvgSizeForSort(Slot, Statistics) |   | 26% |   | 12% | 4 | 5 | 4 | 7 | 0 | 1 |
| sortJoinKeyPairsByTypePriority(List, Statistics, Statistics) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| toOptionalIfChanged(Pair, Pair) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| tryFindOptimalShuffleKeyForJoinWithDistributeColumns(ConnectContext, List, List, List, List, Statistics, Statistics) |   | 90% |   | 60% | 4 | 6 | 3 | 14 | 0 | 1 |
| lambda$sortJoinKeyPairsByTypePriority$3(Pair) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$sortJoinKeyPairsByTypePriority$4(Statistics, Statistics, Pair) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| selectOptimalShuffleKeys(List, Statistics, double, int) |   | 96% |   | 83% | 3 | 10 | 2 | 28 | 0 | 1 |
| ShuffleKeyPruneUtils() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| sortShuffleKeysByTypePriority(List, Statistics) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| selectBestShuffleKeyForAgg(PhysicalHashAggregate, List, Statistics, ConnectContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$selectOptimalShuffleKeys$0(SlotReference) |  | 100% |  | 100% | 0 | 3 | 0 | 1 | 0 | 1 |
| getTypeSortPriority(DataType) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| toOptionalIfChanged(List, List) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| lambda$sortShuffleKeysByTypePriority$2(Statistics, SlotReference) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$sortShuffleKeysByTypePriority$1(SlotReference) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |