| LoptMultiJoin(MultiJoin) |  | 0% |  | 0% | 5 | 5 | 40 | 40 | 1 | 1 |
| setFactorWeights() |  | 0% |  | 0% | 12 | 12 | 40 | 40 | 1 | 1 |
| addRemovableSelfJoinPair(int, int) |  | 0% |  | 0% | 9 | 9 | 30 | 30 | 1 | 1 |
| findRef(int) |  | 0% |  | 0% | 4 | 4 | 4 | 4 | 1 | 1 |
| setJoinFilterRefs() |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| getRightColumnMapping(int, int) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| factorBitmap(ImmutableBitSet) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| setFactorWeight(int, int, int) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getOtherSelfJoinFactor(int) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| getJoinFields(LoptJoinTree, LoptJoinTree) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| isLeftFactorInRemovableSelfJoin(int) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| isRightFactorInRemovableSelfJoin(int) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| getChildFactors(LoptJoinTree, ImmutableBitSet.Builder) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getJoinFilterFactorBitmap(RexNode, boolean) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| createEdge(RexNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| lambda$getRightColumnMapping$3(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJoinFieldRefCounts(int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| fieldBitmap(RexNode) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| getFactorsRefByJoinFilter(RexNode) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getFieldsRefByJoinFilter(RexNode) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$getJoinFieldRefCounts$2(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getFieldsRefByJoinFilter$1(RexNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$getFactorsRefByJoinFilter$0(RexNode) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getFactorsRefByFactor(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| static {...} |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isNullGenerating(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOuterJoinCond(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setJoinRemovalFactor(int, int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| addRemovableOuterJoinFactor(int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getJoinFactor(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProjFields(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setJoinRemovalSemiJoin(int, LogicalJoin) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| hasAllFactors(LoptJoinTree, BitSet) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isRemovableOuterJoinFactor(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNumFieldsInJoinFactor(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMultiJoinFields() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJoinStart(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getOuterJoinFactors(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJoinRemovalFactor(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJoinRemovalSemiJoin(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getMultiJoinRel() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNumJoinFactors() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getNumTotalFields() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getJoinFilters() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getFactorWeights() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |