| maybePruneShuffleJoin(PhysicalHashJoin, CascadesContext) |   | 67% |   | 72% | 6 | 12 | 9 | 36 | 0 | 1 |
| replaceDistributeUnderJoinChild(Plan, Plan) |   | 91% |   | 70% | 3 | 6 | 3 | 22 | 0 | 1 |
| asHashJoin(Plan) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| tryPruneGlobalAgg(PhysicalHashAggregate, CascadesContext) |  | 100% |  | 100% | 0 | 8 | 0 | 24 | 0 | 1 |
| findHashDistributeUnderJoinChild(Plan) |  | 100% |   | 91% | 1 | 7 | 0 | 9 | 0 | 1 |
| isEnforcedOverStrictShuffleSubset(PhysicalDistribute, DistributionSpecHash) |  | 100% |  | 100% | 0 | 4 | 0 | 10 | 0 | 1 |
| processRoot(Plan, CascadesContext) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| deriveHashJoinChildAllowShuffleKeyPrune(PhysicalHashJoin, boolean) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| ShuffleKeyPruner() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| asAgg(Plan) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |