| splitJoinCondition(List, List, RexNode, List, List, List, List) |  | 0% |  | 0% | 42 | 42 | 97 | 97 | 1 | 1 |
| pushDownJoinConditions(Join, RelBuilder) |  | 0% |  | 0% | 15 | 15 | 62 | 62 | 1 | 1 |
| projectJoinInputs(RelNode[], List, List, int, List, List, List) |  | 0% |  | 0% | 10 | 10 | 58 | 58 | 1 | 1 |
| pushDownEqualJoinConditions(RexNode, int, int, List, List, RexBuilder) |  | 0% |  | 0% | 15 | 15 | 49 | 49 | 1 | 1 |
| classifyFilters(RelNode, List, JoinRelType, boolean, boolean, boolean, List, List, List) |  | 0% |  | 0% | 16 | 16 | 41 | 41 | 1 | 1 |
| classifyFilters(RelNode, List, boolean, boolean, boolean, List, List, List) |  | 0% |  | 0% | 12 | 12 | 38 | 38 | 1 | 1 |
| permute(RelNode, Permutation, List) |  | 0% |  | 0% | 10 | 10 | 38 | 38 | 1 | 1 |
| getFullTypeDifferenceString(String, RelDataType, String, RelDataType) |  | 0% |  | 0% | 8 | 8 | 31 | 31 | 1 | 1 |
| splitJoinCondition(RexBuilder, int, RexNode, List, List, List, List) |  | 0% |  | 0% | 17 | 17 | 36 | 36 | 1 | 1 |
| createExistsPlan(RelNode, RelOptUtil.SubQueryType, RelOptUtil.Logic, boolean, RelBuilder) |  | 0% |  | 0% | 11 | 11 | 30 | 30 | 1 | 1 |
| isDistinctFromInternal(RexBuilder, RexNode, RexNode, boolean) |  | 0% |  | 0% | 2 | 2 | 13 | 13 | 1 | 1 |
| doCollapseExpandedIsNotDistinctFromOrExpr(RexCall, RexBuilder) |  | 0% |  | 0% | 15 | 15 | 29 | 29 | 1 | 1 |
| splitCorrelatedFilterCondition(Filter, RexNode, List, List, List, boolean) |  | 0% |  | 0% | 14 | 14 | 32 | 32 | 1 | 1 |
| isDistinctFrom(RexBuilder, RexNode, RexNode, boolean) |  | 0% |  | 0% | 9 | 9 | 27 | 27 | 1 | 1 |
| doCollapseExpandedIsNotDistinctFromCaseExpr(RexCall, RexBuilder) |  | 0% |  | 0% | 15 | 15 | 24 | 24 | 1 | 1 |
| projectMultiJoin(MultiJoin, Project) |  | 0% |  | 0% | 6 | 6 | 31 | 31 | 1 | 1 |
| decomposeConjunction(RexNode, List, List) |  | 0% |  | 0% | 13 | 13 | 27 | 27 | 1 | 1 |
| containsNullableFields(RelNode) |  | 0% |  | 0% | 7 | 7 | 23 | 23 | 1 | 1 |
| createCastRel(RelNode, RelDataType, boolean, RelFactories.ProjectFactory) |  | 0% |  | 0% | 5 | 5 | 26 | 26 | 1 | 1 |
| projectMapping(RelNode, Mapping, List, RelFactories.ProjectFactory) |  | 0% |  | 0% | 10 | 10 | 19 | 19 | 1 | 1 |
| createNullFilter(RelNode, Integer[]) |  | 0% |  | 0% | 7 | 7 | 25 | 25 | 1 | 1 |
| registerDefaultRules(RelOptPlanner, boolean, boolean) |  | 0% |  | 0% | 10 | 10 | 24 | 24 | 1 | 1 |
| simplifyJoin(RelNode, ImmutableList, JoinRelType) |  | 0% |  | 0% | 10 | 10 | 24 | 24 | 1 | 1 |
| splitCorrelatedFilterCondition(LogicalFilter, RexNode, List, List, List) |  | 0% |  | 0% | 9 | 9 | 22 | 22 | 1 | 1 |
| inferViewPredicates(Map, List, RexNode) |  | 0% |  | 0% | 8 | 8 | 19 | 19 | 1 | 1 |
| createExistsPlan(RelOptCluster, RelNode, List, RexLiteral, String) |  | 0% |  | 0% | 10 | 10 | 20 | 20 | 1 | 1 |
| checkProjAndChildInputs(Project, boolean) |  | 0% |  | 0% | 9 | 9 | 20 | 20 | 1 | 1 |
| analyzeSimpleEquiJoin(LogicalJoin, int[]) |  | 0% |  | 0% | 6 | 6 | 21 | 21 | 1 | 1 |
| createRenameRel(RelDataType, RelNode) |  | 0% |  | 0% | 3 | 3 | 13 | 13 | 1 | 1 |
| createProjectJoinRel(List, RelNode) |  | 0% |  | 0% | 4 | 4 | 19 | 19 | 1 | 1 |
| areRowTypesEqual(RelDataType, RelDataType, boolean) |  | 0% |  | 0% | 8 | 8 | 18 | 18 | 1 | 1 |
| dumpPlan(String, RelNode, SqlExplainFormat, SqlExplainLevel) |  | 0% |  | 0% | 5 | 5 | 16 | 16 | 1 | 1 |
| createSwappedJoinExprs(RelNode, Join, boolean) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| permutationIgnoreCast(List, RelDataType) |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 1 | 1 |
| findAllTables(RelNode) |  | 0% |  | 0% | 5 | 5 | 13 | 13 | 1 | 1 |
| doCollapseExpandedIsNotDistinctFrom(RexBuilder, RexCall, RexCall, RexCall, RexCall) |  | 0% |  | 0% | 5 | 5 | 11 | 11 | 1 | 1 |
| eqUpToNullability(boolean, String, RelDataType, String, RelDataType, Litmus) |  | 0% |  | 0% | 5 | 5 | 11 | 11 | 1 | 1 |
| getAllFields2(ImmutableBitSet, List) |  | 0% |  | 0% | 4 | 4 | 10 | 10 | 1 | 1 |
| verifyTypeEquivalence(RelNode, RelNode, Object) |  | 0% |  | 0% | 2 | 2 | 10 | 10 | 1 | 1 |
| getVariablesSetAndUsed(RelNode, RelNode) |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 1 | 1 |
| replaceRecurse(RelNode, RelNode, RelNode) |  | 0% |  | 0% | 5 | 5 | 11 | 11 | 1 | 1 |
| copyRelHints(RelNode, RelNode, boolean) |  | 0% |  | 0% | 7 | 7 | 10 | 10 | 1 | 1 |
| eq(String, RelDataType, String, RelDataType, Litmus) |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| permutationPushDownProject(List, RelDataType, int, int) |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| createSingleValueAggRel(RelOptCluster, RelNode) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| pushPastProjectUnlessBloat(List, Project, int) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
| createProject(RelFactories.ProjectFactory, RelNode, List) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| correlationColumns(CorrelationId, RelNode) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| validateValueAgainstConstraint(SqlNode, RexNode, Supplier) |  | 0% |  | 0% | 3 | 3 | 11 | 11 | 1 | 1 |
| andJoinFilters(RexBuilder, RexNode, RexNode) |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 1 | 1 |
| createRename(RelNode, List) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| permutation(List, RelDataType) |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| getColumnConstraints(ModifiableView, RelDataType, RelDataTypeFactory) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| renameIfNecessary(RelNode, RelDataType) |  | 0% |  | 0% | 5 | 5 | 10 | 10 | 1 | 1 |
| decomposeConjunction(RexNode, List) |  | 0% |  | 0% | 5 | 5 | 8 | 8 | 1 | 1 |
| decomposeDisjunction(RexNode, List) |  | 0% |  | 0% | 5 | 5 | 8 | 8 | 1 | 1 |
| isEqui(RelNode, RelNode, RexNode) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| deduplicateColumns(List, List) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| dumpType(RelDataType) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| adjustKeys(List, int) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| splitFilters(ImmutableBitSet, RexNode, List, List) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| replace(RelNode, RelNode, RelNode) |  | 0% |  | 0% | 5 | 5 | 6 | 6 | 1 | 1 |
| createDmlRowType(SqlKind, RelDataTypeFactory) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| toString(RelNode, SqlExplainLevel, boolean) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| shiftFilter(int, int, int, RexBuilder, List, int, List, RexNode) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| propagateRelHints(RelNode, RelNode) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| replaceInput(RelNode, int, RelNode) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| getVariablesUsed(List) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| op(SqlKind, SqlOperator) |  | 0% |  | 0% | 9 | 9 | 10 | 10 | 1 | 1 |
| lambda$createRenameRel$2(PairList, RexBuilder, RelDataTypeField, RelDataTypeField) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| remapCorrelatesInSuqQuery(RexBuilder, RexSubQuery, CorrelationId, RelDataType, Mapping) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| splitJoinCondition(List, List, RexNode, List, List, List) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| createProject(RelNode, List, boolean) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| notContainsCorrelation(RelNode, CorrelationId, Litmus) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| propagateRelHints(RelNode, boolean) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| createFilter(RelNode, Iterable, RelFactories.FilterFactory) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| splitCorrelatedFilterCondition(Filter, List, List, boolean) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| createEquiJoinCondition(RelNode, List, RelNode, List, RexBuilder) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| pushPastProjectUnlessBloat(RexNode, Project, int) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| findTable(RelNode, String) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| createProject(RelNode, List, List, boolean) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| splitJoinCondition(RelNode, RelNode, RexNode, List, List, List) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| splitCorrelatedFilterCondition(LogicalFilter, List, List) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| addJoinKey(List, RexNode, boolean) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| equal(String, RelDataType, String, RelDataType, Litmus) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| registerAbstractRelationalRules(RelOptPlanner) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| contains(RelNode, RelNode) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| pushShuttle(Calc) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| createProject(RelNode, List, List) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| static {...} |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| isPureOrder(RelNode) |  | 0% |  | 0% | 4 | 4 | 1 | 1 | 1 | 1 |
| isOrder(RelNode) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getVariablesUsed(RelNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| go(RelVisitor, RelNode) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| createExistsPlan(RelNode, RelOptUtil.SubQueryType, RelOptUtil.Logic, boolean) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| splitJoinCondition(RelNode, RelNode, RexNode, List, List, List, List) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| createProject(RelNode, List, List, boolean, RelBuilder) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| splitJoinCondition(List, RelNode, RelNode, RexNode, List, List, List, List) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| containsGet(RexNode) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| isLimit(RelNode) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| isOffset(RelNode) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| getVariablesSet(RelNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| isPureLimit(RelNode) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| createDistinctRel(RelNode) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| collapseExpandedIsNotDistinctFromExpr(RexCall, RexBuilder) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| dumpPlan(String, RelNode, boolean, SqlExplainLevel) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| pushDownJoinConditions(Join, RelFactories.ProjectFactory) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| fix(List, int, int) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| findAllTableQualifiedNames(RelNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| equalType(String, RelNode, String, RelNode, Litmus) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| conjunctions(RexNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| disjunctions(RexNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| addTrait(RelNode, RelTrait) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| createFilter(RelNode, RexNode) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| splitCorrelatedFilterCondition(LogicalFilter, RexNode, List, List, List, boolean) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| registerAbstractRules(RelOptPlanner) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| registerEnumerableRules(RelOptPlanner) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| registerBaseRules(RelOptPlanner) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| registerReductionRules(RelOptPlanner) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| registerMaterializationRules(RelOptPlanner) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| registerCalcRules(RelOptPlanner) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| pushDownJoinConditions(Join, RelBuilderFactory) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| createProject(RelNode, Mappings.TargetMapping, RelFactories.ProjectFactory) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| permute(RelDataTypeFactory, RelDataType, Mapping) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| notContainsWindowedAgg(Calc) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| notContainsWindowedAgg(Filter) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| notContainsWindowedAgg(Project) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| lambda$fix$3(int, int, RexNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$static$0(Filter) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| findTables(RelNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createFilter(RelNode, RexNode, RelFactories.FilterFactory) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createCastRel(RelNode, RelDataType, boolean) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getAllFields(Aggregate) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| splitCorrelatedFilterCondition(LogicalFilter, List, List, boolean) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| stripAll(RelNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| pushPastProject(RexNode, Project) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| pushPastCalc(RexNode, Calc) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createProject(RelNode, Mappings.TargetMapping) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| countJoins(RelNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getFieldTypeList(RelDataType) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| copyRelHints(RelNode, RelNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createFilter(RelNode, Iterable) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toString(RelNode, SqlExplainLevel) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| pushPastProject(List, Project) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| pushShuttle(Project) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createProject(RelNode, List) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toString(RelNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| pushFilterPastProject(RexNode, Project) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| pushDownJoinConditions(Join) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$findAllTableQualifiedNames$1(RelOptTable) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| RelOptUtil() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| registerAbstractRels(RelOptPlanner) | | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getContext(RelOptCluster) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |