| createSecondPhaseAggInfo(ArrayList, ArrayList, Analyzer) |   | 49% |   | 41% | 10 | 13 | 22 | 54 | 0 | 1 |
| createSecondPhaseAggSMap(AggregateInfo, ArrayList) |   | 56% |   | 50% | 6 | 8 | 8 | 25 | 0 | 1 |
| updateTypeOfAggregateExprs() |  | 0% |  | 0% | 6 | 6 | 14 | 14 | 1 | 1 |
| createDistinctAggInfo(ArrayList, ArrayList, Analyzer) |   | 59% |   | 41% | 5 | 7 | 7 | 22 | 0 | 1 |
| materializeRequiredSlots(Analyzer, ExprSubstitutionMap) |   | 70% |   | 40% | 9 | 11 | 7 | 31 | 0 | 1 |
| createSmaps(Analyzer) |   | 75% |   | 83% | 2 | 7 | 4 | 30 | 0 | 1 |
| getRefdSlots(List) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| estimateIfContainsMultiDistinct(List) |   | 83% |   | 70% | 7 | 13 | 2 | 25 | 0 | 1 |
| substitute(ExprSubstitutionMap, Analyzer) |   | 84% |   | 78% | 3 | 8 | 2 | 20 | 0 | 1 |
| hasAggregateExprs() |  | 0% |  | 0% | 4 | 4 | 2 | 2 | 1 | 1 |
| getPartition() |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| AggregateInfo(AggregateInfo) |   | 87% |   | 70% | 3 | 6 | 1 | 19 | 0 | 1 |
| validateGroupingExprs(List) |   | 76% |   | 75% | 1 | 3 | 1 | 5 | 0 | 1 |
| createMergeAggInfo(Analyzer) |   | 97% |   | 80% | 2 | 6 | 0 | 26 | 0 | 1 |
| createCountDistinctAggExprParam(int, int, ArrayList) |   | 93% |   | 66% | 2 | 4 | 2 | 14 | 0 | 1 |
| getResultTupleId() |   | 60% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| setPartitionExprs(List) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| create(ArrayList, ArrayList, TupleDescriptor, Analyzer) |   | 97% |   | 80% | 5 | 14 | 0 | 26 | 0 | 1 |
| updateMaterializedSlots() |   | 96% |   | 66% | 4 | 7 | 0 | 13 | 0 | 1 |
| getInputPartitionExprs() |   | 66% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| getOutputToIntermediateSmap() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isUsingSetForDistinct() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$materializeRequiredSlots$0(Expr) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isSetUsingSetForDistinct(List) |  | 90% |   | 66% | 2 | 4 | 1 | 6 | 0 | 1 |
| isDistinctAgg() |  | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| debugString() |  | 100% |   | 83% | 1 | 4 | 0 | 12 | 0 | 1 |
| create(ArrayList, ArrayList, List, boolean, TupleDescriptor, TupleDescriptor, AggregateInfo.AggPhase) |  | 100% |  | 100% | 0 | 3 | 0 | 10 | 0 | 1 |
| AggregateInfo(ArrayList, ArrayList, AggregateInfo.AggPhase, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| getMaterializedAggregateExprs() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| estimateIfUsingSetForDistinct(List) |  | 100% |   | 75% | 1 | 3 | 0 | 2 | 0 | 1 |
| isFirstPhase() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| AggregateInfo(ArrayList, ArrayList, AggregateInfo.AggPhase) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| clone() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isMerge() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setIsUsingSetForDistinct(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getPartitionExprs() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getMergeAggInfo() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getIntermediateSmap() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getOutputSmap() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSecondPhaseDistinctAggInfo() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| tupleDebugName() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |