| enforceAndDeriveLocalExchange(PlanTranslatorContext, PlanNode, LocalExchangeNode.LocalExchangeTypeRequire) |   | 58% |   | 37% | 24 | 28 | 16 | 41 | 0 | 1 |
| getNodeExplainString(String, TExplainLevel) |   | 67% |   | 64% | 5 | 8 | 6 | 24 | 0 | 1 |
| lambda$toThrift$0(List, List, List, OrderByElement) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| baseClassRequire(ConnectContext) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| toThrift(TPlanNode) |  | 100% |   | 83% | 1 | 4 | 0 | 25 | 0 | 1 |
| normalize(TNormalizedPlanNode, Normalizer) |  | 100% |  | 100% | 0 | 2 | 0 | 13 | 0 | 1 |
| updateplanNodeName() |  | 100% |  | 100% | 0 | 3 | 0 | 12 | 0 | 1 |
| normalizeProjects(TNormalizedPlanNode, Normalizer) |  | 100% |  | 100% | 0 | 2 | 0 | 15 | 0 | 1 |
| normalizeAggOutputProjects(TNormalizedAggregateNode, Normalizer) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| AggregationNode(PlanNodeId, PlanNode, AggregateInfo) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| canUseDistinctStreamingAgg(SessionVariable) |  | 100% |   | 66% | 2 | 4 | 0 | 1 | 0 | 1 |
| isSerialNode() |  | 100% |  | 100% | 0 | 3 | 0 | 1 | 0 | 1 |
| requiresShuffleForCorrectness() |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| unsetNeedsFinalize() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| shouldResetSerialFlagForChild(int) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| lambda$normalizeProjects$1(Normalizer, TupleId) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setUseStreamingPreagg(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setColocate(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setSortByGroupKey(SortInfo) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setQueryCacheCandidate(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getSemanticPartitionExprs() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isColocate() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isQueryCacheCandidate() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |