Is your feature request related to a problem or challenge?
Part of #9637
As part of making the planner faster, we are updating the optimizer passes to avoid copying LogicalPlan and Expr (see #9637)
Describe the solution you'd like
I would like to reduce the amount of copying in this pass (even though it doesn't appear in current profiling)
Describe alternatives you've considered
Apply the model from @Lordworms in #10166 to this pass
2. Update OptimizerRule::supports_rewrite` to return true
- Update
OptimizerRule to use rewrite
- Update the pass itself to not copy the LogicalPlan (ideally using the
TreeNode API) - it is implemented for LogicalPlan (API) and Expr (API)
Other examples: #10218
Additional context