| collectMTMVCandidates(TableIf, CascadesContext) |   | 6% |   | 8% | 6 | 7 | 23 | 27 | 0 | 1 |
| collectFromCte(LogicalCTE, CascadesContext) |  | 0% |  | 0% | 3 | 3 | 16 | 16 | 1 | 1 |
| collectFromUnboundRelation(CascadesContext, List, StatementContext.TableFrom, Optional) |   | 61% |   | 50% | 9 | 13 | 11 | 30 | 0 | 1 |
| collectMVCandidates(TableIf, CascadesContext) |   | 20% |   | 12% | 4 | 5 | 6 | 10 | 0 | 1 |
| collectFromUnboundSink(MatchingContext) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| lambda$collectFromAny$2(MatchingContext, TreeNode) |   | 14% |   | 50% | 1 | 2 | 5 | 7 | 0 | 1 |
| collectFromUnboundRelation(MatchingContext) |   | 54% |   | 50% | 1 | 2 | 1 | 5 | 0 | 1 |
| lambda$buildRules$0(MatchingContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lambda$collectFromAny$1(CascadesContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseAndCollectFromView(List, View, CascadesContext) |  | 100% |   | 50% | 1 | 2 | 0 | 11 | 0 | 1 |
| buildRules() |  | 100% | | n/a | 0 | 1 | 0 | 14 | 0 | 1 |
| collectFromAny(MatchingContext) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| CollectRelation(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$parseAndCollectFromView$3(CascadesContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |