| extractExpression(Expression, ExpressionRewriteContext, LogicalJoin, Set, AtomicReference) |  | 0% |  | 0% | 21 | 21 | 36 | 36 | 1 | 1 |
| tryExtractCaseWhen(Expression, boolean, Set, Set) |  | 0% |  | 0% | 12 | 12 | 38 | 38 | 1 | 1 |
| rewrite(LogicalJoin, ExpressionRewriteContext) |  | 0% |  | 0% | 7 | 7 | 20 | 20 | 1 | 1 |
| tryAddOrExpansionHashCondition(Expression, LogicalJoin, ExpressionRewriteContext, AtomicReference) |  | 0% |  | 0% | 7 | 7 | 16 | 16 | 1 | 1 |
| doExtractExpression(Expression, int, boolean, Set, Set) |  | 0% |  | 0% | 4 | 4 | 14 | 14 | 1 | 1 |
| isAllSlotsFromLeftSide(Expression, boolean, Set, Set) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| lambda$buildRules$0(MatchingContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$extractExpression$1(LogicalJoin, ExpressionRewriteContext, AtomicReference, Expression) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| needRewrite(LogicalJoin) |   | 94% |   | 78% | 3 | 8 | 2 | 15 | 0 | 1 |
| isConditionNeedRewrite(Expression, Set, Set) |   | 82% |   | 62% | 3 | 5 | 2 | 7 | 0 | 1 |
| buildRules() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| JoinExtractOrFromCaseWhen() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |