| optimize(PlanNode, Session, TypeProvider, VariableAllocator, PlanNodeIdAllocator, WarningCollector) |  | 0% |  | 0% | 8 | 8 | 24 | 24 | 1 | 1 |
| exploreNode(int, IterativeOptimizer.Context, Matcher) |  | 0% |  | 0% | 10 | 10 | 27 | 27 | 1 | 1 |
| transform(PlanNode, Rule, Matcher, IterativeOptimizer.Context) |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 1 | 1 |
| IterativeOptimizer(Metadata, RuleStatsRecorder, StatsCalculator, CostCalculator, List, Optional, Set) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| exploreChildren(int, IterativeOptimizer.Context, Matcher) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| isApplicable(PlanNode, Rule, Matcher, IterativeOptimizer.Context) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| exploreGroup(int, IterativeOptimizer.Context, Matcher) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| trackOptimizerRuntime(Session, Rule) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| getNameOfOptimizerRule(Rule) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| IterativeOptimizer(Metadata, RuleStatsRecorder, StatsCalculator, CostCalculator, Set) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| IterativeOptimizer(Metadata, RuleStatsRecorder, StatsCalculator, CostCalculator, Optional, Set) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| IterativeOptimizer(Metadata, RuleStatsRecorder, StatsCalculator, CostCalculator, List, Set) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| ruleContext(IterativeOptimizer.Context) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$optimize$0(Memo, GroupReference) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |