| buildScanRemoteTableJob(StatementContext, PlanFragment, List, ListMultimap, ScanWorkerSelector) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| buildFragmentLineage(FragmentIdMapping) |   | 75% |   | 70% | 2 | 6 | 5 | 22 | 0 | 1 |
| buildLeafOrScanJob(StatementContext, PlanFragment, List, ListMultimap) |   | 70% |   | 75% | 3 | 7 | 3 | 15 | 0 | 1 |
| buildScanOlapTableJob(StatementContext, PlanFragment, List, ListMultimap, ScanWorkerSelector) |   | 45% |   | 50% | 2 | 3 | 3 | 7 | 0 | 1 |
| buildJob(StatementContext, PlanFragment, ListMultimap, boolean) |   | 64% |   | 71% | 4 | 8 | 3 | 11 | 0 | 1 |
| buildSpecifyInstancesJob(StatementContext, PlanFragment, List, ListMultimap) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| buildShuffleJob(StatementContext, PlanFragment, ListMultimap) |   | 58% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| shouldAssignByBucket(PlanFragment) |   | 66% |   | 50% | 2 | 3 | 2 | 5 | 0 | 1 |
| buildJobs(ScanWorkerSelector, StatementContext, FragmentIdMapping) |  | 100% |  | 100% | 0 | 3 | 0 | 14 | 0 | 1 |
| findInputJobs(UnassignedJobBuilder.FragmentLineage, PlanFragmentId, FragmentIdMapping) |  | 100% |   | 83% | 1 | 4 | 0 | 12 | 0 | 1 |
| olapScanNodeNum(List) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| collectScanNodesInThisFragment(PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| collectExchangeNodesInThisFragment(PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| buildScanMetadataJob(StatementContext, PlanFragment, SchemaScanNode, ScanWorkerSelector) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| UnassignedJobBuilder(ScanWorkerSelector) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| buildQueryConstantJob(StatementContext, PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isLeafFragment(PlanFragment) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |