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]

Reply via email to