| transformPersistentCtes(Session, PlanNode) |  | 0% |  | 0% | 3 | 3 | 14 | 14 | 1 | 1 |
| performHeuristicAnalysis(Session, PlanNode, LogicalCteOptimizer.LogicalCteOptimizerContext) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| LogicalCteOptimizer.CteEnumerator(LogicalCteOptimizer, PlanNodeIdAllocator, VariableAllocator) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| determineMaterializationCandidatesAndUpdateContext(Session, PlanNode, LogicalCteOptimizer.LogicalCteOptimizerContext) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| markAllCtesForMaterialization(Session, LogicalCteOptimizer.LogicalCteOptimizerContext) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| shouldPerformHeuristicAnalysis(Session) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isPlanRewritten() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |