| getNodeExplainString(String, TExplainLevel) |  | 0% |  | 0% | 18 | 18 | 52 | 52 | 1 | 1 |
| toThrift(TPlanNode) |  | 0% |  | 0% | 18 | 18 | 42 | 42 | 1 | 1 |
| enforceAndDeriveLocalExchange(PlanTranslatorContext, PlanNode, LocalExchangeNode.LocalExchangeTypeRequire) |  | 0% |  | 0% | 18 | 18 | 46 | 46 | 1 | 1 |
| HashJoinNode(PlanNodeId, PlanNode, PlanNode, JoinOperator, List, List, Expr, List, boolean) |  | 0% |  | 0% | 12 | 12 | 30 | 30 | 1 | 1 |
| canUpgradeBucketToLocalHash(PlanTranslatorContext, LocalExchangeNode.LocalExchangeTypeRequire) |  | 0% |  | 0% | 7 | 7 | 7 | 7 | 1 | 1 |
| requiresShuffleForCorrectness() |  | 0% |  | 0% | 4 | 4 | 1 | 1 | 1 | 1 |
| setColocate(boolean, String) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| shouldResetSerialFlagForChild(int) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| addSlotIdToHashOutputSlotIds(SlotId) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isBucketShuffle() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setDistributionMode(DistributionMode) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setOtherJoinConjuncts(List) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setMarkJoinConjuncts(List) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getEqJoinConjuncts() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDistributionMode() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isColocate() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getHashOutputExprSlotIdMap() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getHashOutputSlotIds() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOtherJoinConjuncts() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMarkJoinConjuncts() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |