isidentical opened a new pull request, #4519: URL: https://github.com/apache/arrow-datafusion/pull/4519
# Which issue does this PR close? Closes #3845 . # Rationale for this change Allowing the propagation of column statistics in filter estimations theoretically unlocks all the parent estimations which in turn should benefit us greatly when dealing with nested joins. # What changes are included in this PR? The major change here is the new analysis context API which allows it to be attached with an expression boundaries alongside the information it already holds (column boundaries). With this in our hand, we can derive the column statistics for filter's result and all other use cases where the expression analysis used. The initial design was around sharing a single `&mut Context` around and returning `ExprBoundaries` as we do now, but thanks to @alamb's suggestion on [my fork](https://github.com/isidentical/arrow-datafusion/pull/5#discussion_r1023180238) we can achieve a similar thing (albeit a bit more verbose) while still keeping the analysis process mut-free. # Are these changes tested? <!-- 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)? --> Yes # Are there any user-facing changes? <!-- If there are user-facing changes then we may require documentation to be updated before approving the PR. --> No. This includes a break in the expression analysis API but it was specifically marked as experimental for stuff like this (it is currently evolving). <!-- If there are any breaking changes to public APIs, please add the `api change` label. --> -- 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]
