alamb opened a new pull request, #10216: URL: https://github.com/apache/datafusion/pull/10216
## Which issue does this PR close? Part of https://github.com/apache/datafusion/issues/10209 ## Rationale for this change This is a step towards improving the performance of OptimizeProjection (by less copying) in https://github.com/apache/datafusion/issues/10209. While trying to rework how `OptimizeProjection works`, I found that the population of child indices pretty much required calling `LogicalPlan::expressions()` which results in an owed copy. Removing these copies themselves will improve the situation, and while there is still more to do to remove all the copies, this is a first step (and I think makes the code potentially easier to reason about) ## What changes are included in this PR? This PR encapsulates that logic for managing required indices into a new struct `RequiredIndicies` which avoids some Expr copies (and sets up the rewrite to avoid `LogicalPlan` copies) ## Are these changes tested? Covered by existing tests <!-- We typically require tests for all PRs in order to: 1. Prevent the code from being accidentally broken by subsequent changes 2. Serve as another way to document the expected behavior of the code If tests are not included in your PR, please explain why (for example, are they covered by existing tests)? --> ## Are there any user-facing changes? no functional changes performance benchmarks (TODO) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
