adriangb opened a new pull request, #16642: URL: https://github.com/apache/datafusion/pull/16642
Closes https://github.com/apache/datafusion/issues/16188. As discussed in that issue one of the reasons to hold off on refactoring the APIs was waiting until they were used in more places so we could get a better picture of what was needed. Working on https://github.com/apache/datafusion/pull/16445 necessitated [adding new APIs](https://github.com/apache/datafusion/pull/16445/files#r2164715273) which led me to wanting to do this refactor. So this PR couples implementing parent filter passthrough support for joins because this demonstrates that the APIs will be sufficient to implement most of the cases we want to tackle. I'm happy to split up the PR if that helps (I'll just revert the changes to `datafusion/physical-plan/src/joins/hash_join.rs`). The refactor of the APIs focused on two key things: - Removing thin helper methods that could easily be implemented by the caller. This adds a bit of boilerplate but makes the code more transparent and reduces the number of APIs and structs to juggle (I completely binned `PredicateSupports` in favor of `Vec<PredicateSupport>`. - Bringing the logic that would have now been repeated in the HashJoinExec implementation and FilterExec implementations of `gather_filters_for_pushdown` into a single place, which simplifies away several APIs and lifts a lot of complexity from ExecutionPlan implementations into the pushdown module itself. -- 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: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org