| genOutputTupleDescAndSMap(Analyzer, ArrayList, List) |  | 0% |  | 0% | 7 | 7 | 25 | 25 | 1 | 1 |
| substitutePreRepeatExprs(ExprSubstitutionMap, Analyzer) |  | 0% |  | 0% | 6 | 6 | 16 | 16 | 1 | 1 |
| substituteGroupingFn(Expr, Analyzer) |  | 0% |  | 0% | 7 | 7 | 11 | 11 | 1 | 1 |
| addSlot(Analyzer, Expr) |  | 0% |  | 0% | 3 | 3 | 9 | 9 | 1 | 1 |
| getSlotRefChildren(Expr) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| substituteGroupingFn(List, Analyzer) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| addGroupingSlots(List, Analyzer) |   | 70% |   | 16% | 3 | 4 | 4 | 11 | 0 | 1 |
| genGroupingList(ArrayList) |   | 90% |   | 90% | 2 | 11 | 1 | 25 | 0 | 1 |
| lambda$genOutputTupleDescAndSMap$1(List, FunctionCallExpr) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getVirtualSlotRefs() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getVirtualTuple() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOutputTupleSmap() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getGroupingSlotDescList() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| buildRepeat(ArrayList, List) |   | 98% |   | 94% | 1 | 11 | 1 | 27 | 0 | 1 |
| GroupingInfo(Analyzer, GroupByClause) |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| GroupingInfo(GroupByClause.GroupingType, TupleDescriptor, TupleDescriptor, List) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| getOutputTupleDesc() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getGroupingIdList() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getPreRepeatExprs() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addGroupingSlots$0(Expr) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |