findRemovableOuterJoins(RelMetadataQuery, LoptMultiJoin) |  | 0% |  | 0% | 20 | 20 | 61 | 61 | 1 | 1 |
pushDownFactor(RelOptRuleCall, LoptMultiJoin, LoptSemiJoinOptimizer, LoptJoinTree, int, BitSet, List, boolean) |  | 0% |  | 0% | 18 | 18 | 55 | 55 | 1 | 1 |
createReplacementJoin(RelBuilder, LoptMultiJoin, LoptSemiJoinOptimizer, LoptJoinTree, int, int, ImmutableIntList, Integer[], List) |  | 0% |  | 0% | 7 | 7 | 43 | 43 | 1 | 1 |
findRemovableSelfJoins(RelMetadataQuery, LoptMultiJoin) |  | 0% |  | 0% | 12 | 12 | 32 | 32 | 1 | 1 |
createTopProject(RelBuilder, LoptMultiJoin, LoptJoinTree, List) |  | 0% |  | 0% | 8 | 8 | 37 | 37 | 1 | 1 |
addFactorToTree(RelOptRuleCall, LoptMultiJoin, LoptSemiJoinOptimizer, LoptJoinTree, int, BitSet, List, boolean) |  | 0% |  | 0% | 12 | 12 | 38 | 38 | 1 | 1 |
addFilters(LoptMultiJoin, LoptJoinTree, int, LoptJoinTree, List, boolean) |  | 0% |  | 0% | 10 | 10 | 35 | 35 | 1 | 1 |
getBestNextFactor(RelMetadataQuery, LoptMultiJoin, BitSet, BitSet, LoptSemiJoinOptimizer, LoptJoinTree, List) |  | 0% |  | 0% | 16 | 16 | 31 | 31 | 1 | 1 |
adjustFilter(LoptMultiJoin, LoptJoinTree, LoptJoinTree, RexNode, int, List, List) |  | 0% |  | 0% | 7 | 7 | 30 | 30 | 1 | 1 |
createJoinSubtree(RelMetadataQuery, RelBuilder, LoptMultiJoin, LoptJoinTree, LoptJoinTree, RexNode, JoinRelType, List, boolean, boolean) |  | 0% |  | 0% | 12 | 12 | 30 | 30 | 1 | 1 |
createOrdering(RelOptRuleCall, LoptMultiJoin, LoptSemiJoinOptimizer, int) |  | 0% |  | 0% | 9 | 9 | 35 | 35 | 1 | 1 |
remapJoinReferences(LoptMultiJoin, int, List, int, int[], int, int, boolean) |  | 0% |  | 0% | 10 | 10 | 28 | 28 | 1 | 1 |
createReplacementSemiJoin(RelBuilder, LoptMultiJoin, LoptSemiJoinOptimizer, LoptJoinTree, int, List) |  | 0% |  | 0% | 7 | 7 | 22 | 22 | 1 | 1 |
isSelfJoinFilterUnique(RelMetadataQuery, LoptMultiJoin, int, int, List) |  | 0% |  | 0% | 3 | 3 | 20 | 20 | 1 | 1 |
addToTop(RelMetadataQuery, RelBuilder, LoptMultiJoin, LoptSemiJoinOptimizer, LoptJoinTree, int, List, boolean) |  | 0% |  | 0% | 9 | 9 | 16 | 16 | 1 | 1 |
swapFilter(RexBuilder, LoptMultiJoin, LoptJoinTree, LoptJoinTree, RexNode) |  | 0% |  | 0% | 3 | 3 | 14 | 14 | 1 | 1 |
findBestOrderings(RelOptRuleCall, LoptMultiJoin, LoptSemiJoinOptimizer) |  | 0% |  | 0% | 5 | 5 | 17 | 17 | 1 | 1 |
areSelfJoinKeysUnique(RelMetadataQuery, RelNode, RelNode, RexNode) |  | 0% |  | 0% | 7 | 7 | 16 | 16 | 1 | 1 |
swapInputs(RelMetadataQuery, LoptMultiJoin, LoptJoinTree, LoptJoinTree, boolean) |  | 0% |  | 0% | 8 | 8 | 12 | 12 | 1 | 1 |
onMatch(RelOptRuleCall) |  | 0% |  | 0% | 3 | 3 | 17 | 17 | 1 | 1 |
needsAdjustment(LoptMultiJoin, int[], LoptJoinTree, LoptJoinTree, boolean) |  | 0% |  | 0% | 4 | 4 | 13 | 13 | 1 | 1 |
addAdditionalFilters(RelBuilder, LoptMultiJoin, LoptJoinTree, LoptJoinTree, List) |  | 0% |  | 0% | 3 | 3 | 13 | 13 | 1 | 1 |
computeJoinCardinality(RelMetadataQuery, LoptMultiJoin, LoptSemiJoinOptimizer, LoptJoinTree, List, int) |  | 0% |  | 0% | 2 | 2 | 14 | 14 | 1 | 1 |
setFactorJoinKeys(LoptMultiJoin, List, ImmutableBitSet, int, int, ImmutableBitSet.Builder) |  | 0% |  | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
isRemovableSelfJoin(Join) |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 1 | 1 |
getSimpleFactors(RelMetadataQuery, LoptMultiJoin) |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 1 | 1 |
setJoinKey(ImmutableBitSet.Builder, ImmutableBitSet.Builder, int, int, int, int, boolean) |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 1 | 1 |
rowWidthCost(RelNode) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
LoptOptimizeJoinRule(RelFactories.JoinFactory, RelFactories.ProjectFactory, RelFactories.FilterFactory) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
isJoinTree(RelNode) |  | 0% |  | 0% | 4 | 4 | 4 | 4 | 1 | 1 |
lambda$createReplacementSemiJoin$1(int, LoptMultiJoin) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
lambda$pushDownFactor$0(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
LoptOptimizeJoinRule(RelBuilderFactory) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
static {...} |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
LoptOptimizeJoinRule(LoptOptimizeJoinRule.Config) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |