| tryInferYear(ComparisonPredicate, Expression, Expression) |   | 3% |   | 2% | 20 | 21 | 21 | 23 | 0 | 1 |
| tryInferFromUnixtime(ComparisonPredicate, Expression, Expression, ExpressionRewriteContext) |   | 14% |   | 22% | 9 | 12 | 16 | 20 | 0 | 1 |
| tryInferStringPrefix(ComparisonPredicate, Expression, Expression) |   | 13% |   | 18% | 7 | 9 | 16 | 21 | 0 | 1 |
| tryInferDateCeil(ComparisonPredicate, Expression, Expression, ExpressionRewriteContext) |   | 8% |   | 5% | 9 | 10 | 14 | 17 | 0 | 1 |
| bytePrefixSuccessor(String) |  | 0% |  | 0% | 6 | 6 | 12 | 12 | 1 | 1 |
| tryInferDateFormat(ComparisonPredicate, Expression, Expression, ExpressionRewriteContext) |   | 22% |   | 31% | 6 | 9 | 11 | 15 | 0 | 1 |
| extractPrefixLength(Expression) |  | 0% |  | 0% | 6 | 6 | 10 | 10 | 1 | 1 |
| tryInferMonthsYearsAdd(ComparisonPredicate, Expression, Expression, ExpressionRewriteContext) |   | 28% |   | 31% | 6 | 9 | 11 | 16 | 0 | 1 |
| buildInverseSub(Expression, Expression) |   | 26% |   | 33% | 6 | 7 | 8 | 11 | 0 | 1 |
| tryInferDateFloor(ComparisonPredicate, Expression, Expression, ExpressionRewriteContext) |   | 72% |   | 55% | 8 | 10 | 5 | 17 | 0 | 1 |
| extractPrefixSource(Expression) |   | 59% |   | 50% | 5 | 7 | 3 | 11 | 0 | 1 |
| extractDateCeilSource(Expression) |   | 33% |   | 37% | 3 | 5 | 4 | 6 | 0 | 1 |
| ceilHasNoOriginAndValidPeriod(Expression) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| floorHasValidPeriod(Expression) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| rewriteCompound(CompoundPredicate, ExpressionRewriteContext) |   | 77% |   | 78% | 3 | 8 | 5 | 21 | 0 | 1 |
| tryInfer(Expression, ExpressionRewriteContext) |   | 87% |   | 75% | 6 | 13 | 6 | 26 | 0 | 1 |
| isPositiveIntegerLiteral(Expression) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| extractDateFloorSource(Expression) |   | 80% |   | 60% | 3 | 6 | 1 | 6 | 0 | 1 |
| isStringSlot(Expression) |   | 45% |   | 25% | 2 | 3 | 0 | 1 | 0 | 1 |
| rewriteSingle(ComparisonPredicate, ExpressionRewriteContext) |   | 92% |   | 75% | 1 | 3 | 1 | 8 | 0 | 1 |
| isTimeStampTzSlot(Expression) |   | 81% |   | 50% | 2 | 3 | 0 | 1 | 0 | 1 |
| disabled() |   | 80% |   | 50% | 2 | 3 | 0 | 2 | 0 | 1 |
| isDateLikeSlot(Expression) |  | 90% |   | 50% | 2 | 3 | 0 | 1 | 0 | 1 |
| buildRules() |  | 100% | | n/a | 0 | 1 | 0 | 19 | 0 | 1 |
| lambda$buildRules$5(ExpressionMatchingContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildRules$4(ExpressionMatchingContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildRules$3(ExpressionMatchingContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildRules$2(ExpressionMatchingContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildRules$1(ExpressionMatchingContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$buildRules$0(ExpressionMatchingContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| InferPredicateFromMonotonicFunction() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |