| finalize(StatementBase) |  | 0% |  | 0% | 6 | 6 | 14 | 14 | 1 | 1 |
| getExplainString(TExplainLevel) |   | 72% |   | 60% | 4 | 6 | 4 | 19 | 0 | 1 |
| resetOutputExprs(TupleDescriptor) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| getDeepestLinearSource() |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| lambda$buildHasBucketShuffleJoin$0() |   | 62% |   | 25% | 2 | 3 | 3 | 6 | 0 | 1 |
| PlanFragment(PlanFragmentId, PlanNode, DataPartition, DataPartition) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| updateDataPartition(DataPartition) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| resetSink(DataSink) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| clearRuntimeFilters() |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| toThrift() |   | 89% |   | 62% | 3 | 5 | 1 | 13 | 0 | 1 |
| setParallelExecNum(int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setResultSinkType(TResultSinkType) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setTransferQueryStatisticsWithEveryBatch(boolean) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getFragmentSequenceNum() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$hasNullAwareLeftAntiJoin$1(TreeNode) |   | 83% |   | 75% | 1 | 3 | 0 | 2 | 0 | 1 |
| getNumNodes() |   | 80% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| isPartitioned() |   | 77% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| setFragmentInPlanTree(PlanNode) |  | 96% |   | 83% | 1 | 4 | 1 | 9 | 0 | 1 |
| addPlanRoot(PlanNode) |  | 95% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| setSink(DataSink) |  | 94% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| PlanFragment(PlanFragmentId, PlanNode, DataPartition) |  | 100% | | n/a | 0 | 1 | 0 | 18 | 0 | 1 |
| useSerialSource(ConnectContext) |  | 100% |   | 75% | 4 | 9 | 0 | 5 | 0 | 1 |
| PlanFragment(PlanFragmentId, PlanNode, DataPartition, Set, Set) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| setDestination(ExchangeNode) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| getExplainStringMap(Map) |  | 100% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| getDestFragment() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| setParallelExecNumIfExists() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| getParallelExecNum() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| setPlanRoot(PlanNode) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| setOutputExprs(List) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setBuilderRuntimeFilterIds(RuntimeFilterId) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setTargetRuntimeFilterIds(RuntimeFilterId) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| hasBucketShuffleJoin() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hasNullAwareLeftAntiJoin() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| buildHasBucketShuffleJoin() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setHasColocatePlanNode(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setOutputPartition(DataPartition) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setFragmentSequenceNum(int) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setBucketNum(int) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| hasSerialScanNode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setForceSingleInstance() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getOutputExprs() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hasColocatePlanNode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getId() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDestNode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDataPartition() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getOutputPartition() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getPlanRoot() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSink() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getFragmentId() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBuilderRuntimeFilterIds() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getTargetRuntimeFilterIds() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isTransferQueryStatisticsWithEveryBatch() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBucketNum() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |