| getRelatedTableInfo(String, String, Plan, CascadesContext) |   | 0% |   | 0% | 8 | 8 | 31 | 31 | 1 | 1 | 
| getRelatedTableInfos(String, String, Plan, CascadesContext) |    | 90% |    | 87% | 2 | 9 | 3 | 34 | 0 | 1 | 
| lambda$getRelatedTableInfo$0(RelatedTableInfo.RelatedTableColumnInfo) |   | 0% |   | 0% | 3 | 3 | 1 | 1 | 1 | 1 | 
| removeMaterializedViewHooks(StatementContext) |    | 89% |    | 75% | 1 | 3 | 1 | 9 | 0 | 1 | 
| MaterializedViewUtils() |   | 0% |  | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 
| rewriteByRules(CascadesContext, Function, Plan, Plan, boolean) |    | 98% |    | 90% | 2 | 11 | 1 | 50 | 0 | 1 | 
| normalizeExpressions(Plan, Plan) |    | 95% |    | 75% | 1 | 3 | 1 | 6 | 0 | 1 | 
| checkPartitionRefExpression(Collection) |    | 94% |    | 83% | 1 | 4 | 1 | 8 | 0 | 1 | 
| containMaterializedViewHook(StatementContext) |   | 94% |    | 75% | 1 | 3 | 1 | 5 | 0 | 1 | 
| extractStructInfo(Plan, Plan, CascadesContext, BitSet) |   | 100% |    | 83% | 2 | 7 | 0 | 23 | 0 | 1 | 
| transformToCommonTableId(BitSet, Map) |   | 100% |   | 100% | 0 | 3 | 0 | 6 | 0 | 1 | 
| normalizeExpression(NamedExpression, NamedExpression) |   | 100% |   | 100% | 0 | 3 | 0 | 5 | 0 | 1 | 
| generateMvScanPlan(OlapTable, long, List, PreAggStatus, CascadesContext) |   | 100% |  | n/a | 0 | 1 | 0 | 10 | 0 | 1 | 
| getChosenMaterializationAndUsedTable(Plan, Map) |   | 100% |  | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 
| collectProducerCtePlans(Plan) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| extractNondeterministicFunction(Plan) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| collectTableUsedPartitions(Plan, CascadesContext) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 
| containTableQueryOperator(Plan) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$rewriteByRules$1(AtomicReference, Function, CascadesContext) |   | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1 |