| ExpressionRewrite.java |   | 55% |   | 34% | 61 | 134 | 135 | 331 | 21 | 82 | 0 | 25 |
| QueryColumnCollector.java |   | 13% |   | 14% | 35 | 40 | 77 | 94 | 16 | 19 | 0 | 2 |
| ExpressionRuleType.java |  | 0% | | n/a | 2 | 2 | 49 | 49 | 2 | 2 | 1 | 1 |
| ExpressionNormalization.java |  | 0% | | n/a | 3 | 3 | 6 | 6 | 3 | 3 | 1 | 1 |
| MergeGuardExpr.java |  | 12% |  | 0% | 4 | 6 | 12 | 14 | 1 | 3 | 0 | 1 |
| ExpressionRuleExecutor.java |   | 39% |   | 33% | 7 | 11 | 10 | 19 | 5 | 8 | 0 | 1 |
| ExpressionTraverseListenerMapping.java |   | 32% |  | 0% | 7 | 9 | 7 | 13 | 2 | 4 | 0 | 1 |
| ExpressionBottomUpRewriter.java |   | 83% |   | 83% | 6 | 23 | 7 | 51 | 0 | 5 | 0 | 1 |
| ExpressionTraverseListenerFactory.java |   | 64% |  | 0% | 3 | 9 | 5 | 19 | 2 | 8 | 0 | 2 |
| ExpressionRewriteContext.java |   | 53% | | n/a | 2 | 5 | 6 | 15 | 2 | 5 | 1 | 2 |
| ExpressionPatternRuleFactory.java |  | 90% |   | 25% | 4 | 18 | 0 | 22 | 2 | 16 | 0 | 2 |
| ExpressionMatchingContext.java |  | 80% |  | 100% | 1 | 4 | 1 | 8 | 1 | 3 | 0 | 1 |
| ExpressionNormalizationAndOptimization.java |  | 87% |  | 100% | 1 | 5 | 1 | 11 | 1 | 4 | 0 | 1 |
| ExpressionOptimization.java |  | 96% | | n/a | 1 | 2 | 2 | 7 | 1 | 2 | 0 | 1 |
| ExpressionPatternMatcher.java |  | 92% |   | 50% | 1 | 2 | 0 | 6 | 0 | 1 | 0 | 1 |
| ExpressionListenerMatcher.java |  | 90% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 | 0 | 1 |
| ExpressionTraverseListener.java | | 50% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| ExpressionPatternMatchRule.java |  | 100% |  | 100% | 0 | 12 | 0 | 17 | 0 | 6 | 0 | 1 |
| NullableDependentExpressionRewrite.java |  | 100% | | n/a | 0 | 2 | 0 | 6 | 0 | 2 | 0 | 1 |
| CheckLegalityAfterRewrite.java |  | 100% | | n/a | 0 | 3 | 0 | 5 | 0 | 3 | 0 | 1 |
| AbstractExpressionRewriteRule.java | | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |