| unifyAggregates(MutableAggregate, RexNode, MutableAggregate) |  | 0% |  | 0% | 27 | 27 | 90 | 90 | 1 | 1 |
| go(MutableRel) |  | 0% |  | 0% | 27 | 27 | 65 | 65 | 1 | 1 |
| matchRecurse(MutableRel) |  | 0% |  | 0% | 15 | 15 | 42 | 42 | 1 | 1 |
| canonizeNode(RexBuilder, RexNode) |  | 0% |  | 0% | 11 | 11 | 35 | 35 | 1 | 1 |
| setOpApply(SubstitutionVisitor.UnifyRuleCall) |  | 0% |  | 0% | 13 | 13 | 36 | 36 | 1 | 1 |
| shiftAndAdjustProjectExpr(MutableJoin, MutableJoin, RexBuilder, List, List, List, List) |  | 0% |  | 0% | 6 | 6 | 24 | 24 | 1 | 1 |
| SubstitutionVisitor(RelNode, RelNode, ImmutableList, RelBuilderFactory) |  | 0% | | n/a | 1 | 1 | 28 | 28 | 1 | 1 |
| splitFilter(RexSimplify, RexNode, RexNode) |  | 0% |  | 0% | 7 | 7 | 24 | 24 | 1 | 1 |
| go0(RelNode) |  | 0% |  | 0% | 6 | 6 | 18 | 18 | 1 | 1 |
| mayBeSatisfiable(RexNode) |  | 0% |  | 0% | 11 | 11 | 22 | 22 | 1 | 1 |
| genAggCallWithTargetGrouping(AggregateCall, List) |  | 0% |  | 0% | 7 | 7 | 21 | 21 | 1 | 1 |
| rowTypesAreEquivalent(MutableRel, MutableRel, Litmus) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| isWeaker(MutableRel, MutableRel) |  | 0% |  | 0% | 8 | 8 | 12 | 12 | 1 | 1 |
| applicableRules(MutableRel, MutableRel) |  | 0% |  | 0% | 4 | 4 | 13 | 13 | 1 | 1 |
| reverseSubstitute(RelBuilder, Holder, List, List, int, int) |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| splitOr(RexBuilder, RexNode, RexNode) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
| getRollup(SqlAggFunction) |  | 0% |  | 0% | 13 | 13 | 5 | 5 | 1 | 1 |
| adjustNullability(RexNode, RelDataType, RexBuilder) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| referenceByMapping(RexNode, List[]) |  | 0% |  | 0% | 2 | 2 | 9 | 9 | 1 | 1 |
| replaceRecurse(MutableRel, MutableRel, MutableRel) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| go(RelNode) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| sameRelCollectionNoOrderConsidered(List, List) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| explainCalc(MutableCalc) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| getRexShuttle(List) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| static {...} |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| tryMergeParentCalcAndGenResult(SubstitutionVisitor.UnifyRuleCall, MutableRel) |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
| mergeCalc(RexBuilder, MutableCalc, MutableCalc) |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| replace(MutableRel, MutableRel, MutableRel) |  | 0% |  | 0% | 4 | 4 | 4 | 4 | 1 | 1 |
| canPullUpCalcUnderJoin(JoinRelType, Pair, Pair) |  | 0% |  | 0% | 7 | 7 | 7 | 7 | 1 | 1 |
| isCalcStrong(Pair) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| permute(MutableAggregate, MutableRel, Mapping) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| undoReplacement(List) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| implies(RelOptCluster, RexNode, RexNode, RelDataType) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| isEquivalent(RexNode, RexNode) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| redoReplacement(List) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| mightMatch(SubstitutionVisitor.UnifyRule, Class, Class) |  | 0% |  | 0% | 3 | 3 | 2 | 2 | 1 | 1 |
| apply(SubstitutionVisitor.UnifyRule, MutableRel, MutableRel) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| equalType(String, MutableRel, String, MutableRel, Litmus) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$unifyAggregates$1(Map, int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| SubstitutionVisitor(RelNode, RelNode) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| SubstitutionVisitor(RelNode, RelNode, ImmutableList) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| sameJoinType(JoinRelType, JoinRelType) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getExpandShuttle(RexProgram) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| fieldCnt(MutableRel) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$permute$0(Mapping, AggregateCall) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| register(MutableRel, MutableRel) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |