| createHashJoinFragment(HashJoinNode, PlanFragment, PlanFragment, ArrayList) |   | 30% |   | 45% | 11 | 12 | 50 | 71 | 0 | 1 |
| canBucketShuffleJoin(HashJoinNode, PlanNode, List) |   | 9% |   | 6% | 16 | 17 | 38 | 44 | 0 | 1 |
| createPhase2DistinctAggregationFragment(AggregationNode, PlanFragment, ArrayList) |  | 0% |  | 0% | 10 | 10 | 46 | 46 | 1 | 1 |
| dataDistributionMatchEqPredicate(List, OlapScanNode, OlapScanNode, List) |   | 21% |   | 10% | 19 | 20 | 30 | 43 | 0 | 1 |
| createPlanFragments(PlanNode, boolean, ArrayList) |   | 51% |   | 52% | 14 | 22 | 18 | 46 | 0 | 1 |
| createInsertFragment(PlanFragment, InsertStmt, ArrayList) |  | 0% |  | 0% | 10 | 10 | 31 | 31 | 1 | 1 |
| createNestedLoopJoinFragment(NestedLoopJoinNode, PlanFragment, PlanFragment) |  | 0% |  | 0% | 2 | 2 | 24 | 24 | 1 | 1 |
| createAnalyticFragment(PlanNode, PlanFragment, List) |  | 0% |  | 0% | 9 | 9 | 24 | 24 | 1 | 1 |
| createOrderByFragment(SortNode, PlanFragment) |  | 0% |  | 0% | 5 | 5 | 24 | 24 | 1 | 1 |
| createSetOperationNodeFragment(SetOperationNode, ArrayList, ArrayList) |   | 66% |   | 62% | 5 | 9 | 10 | 29 | 0 | 1 |
| createAssertFragment(PlanNode, PlanFragment) |  | 0% |  | 0% | 2 | 2 | 10 | 10 | 1 | 1 |
| createAggregationFragment(AggregationNode, PlanFragment, ArrayList) |   | 53% |   | 50% | 6 | 8 | 8 | 18 | 0 | 1 |
| canBucketShuffleJoin(HashJoinNode, PlanFragment, List) |   | 45% |   | 28% | 7 | 8 | 9 | 15 | 0 | 1 |
| createSelectNodeFragment(SelectNode, ArrayList) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| canColocateJoin(HashJoinNode, PlanFragment, PlanFragment, List) |   | 77% |   | 57% | 6 | 8 | 8 | 25 | 0 | 1 |
| canColocateAgg(AggregateInfo, DataPartition) |   | 38% |   | 33% | 3 | 4 | 4 | 8 | 0 | 1 |
| createScanFragment(PlanNode) |   | 52% |   | 50% | 2 | 3 | 2 | 7 | 0 | 1 |
| genSrcScanNode(Expr, PlanFragment, List) |   | 50% |   | 50% | 3 | 4 | 6 | 13 | 0 | 1 |
| createTableFunctionFragment(PlanNode, PlanFragment) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| createMergeFragment(PlanFragment) |   | 75% |   | 33% | 3 | 4 | 3 | 14 | 0 | 1 |
| lambda$canBucketShuffleJoin$0(OlapTable, Column) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createPlanFragments(PlanNode) |   | 71% |   | 30% | 5 | 6 | 2 | 11 | 0 | 1 |
| createRepeatNodeFragment(RepeatNode, PlanFragment, ArrayList) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| isFragmentPartitioned(PlanFragment) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| dataPartitionMatchAggInfo(DataPartition, List) |   | 83% |   | 60% | 4 | 6 | 5 | 15 | 0 | 1 |
| createMergeAggregationFragment(AggregationNode, PlanFragment) |   | 97% |   | 50% | 4 | 5 | 1 | 31 | 0 | 1 |
| dataDistributionMatchEqPredicate(Map, List) |   | 92% |   | 50% | 2 | 3 | 2 | 8 | 0 | 1 |
| createParentFragment(PlanFragment, DataPartition) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| connectChildFragment(PlanNode, int, PlanFragment, PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| DistributedPlanner(PlannerContext) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |