Push down left join to workers
DESCRIPTION: PR description that will go into the change log, up to 78 characters
WIP
Main todo items:
[ ] Add checks for outer table, i.e., make sure that the push down path is only active when necessary constraints can be generated for the outer table/entry - outer table should have distribution key - if larg of the join is not a table, either the pushdown path should be inactive or the constraints / conditions should be applied to all tables
[ ] Update tests [ ] Introduce new tests [ ] Remove excessive debug messages [ ] Add clear debug messages about the plan [ ] Only introduce constraints for left joins [ ] RestrictionEquivalenceForPartitionKeys, in some cases, this check fails in query_pushdown_planning, check early and perform recursive planning for these to avoid regression --> not a regresssion, as we do not compute the result in this case. [ ] Push down constraints are not added for the nested joins [ ] Extend to other distribution methods, only works for hash partition.
Codecov Report
:x: Patch coverage is 85.83691% with 33 lines in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 88.27%. Comparing base (87a1b63) to head (db85081).
:warning: Report is 1 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #7973 +/- ##
==========================================
- Coverage 89.19% 88.27% -0.93%
==========================================
Files 285 285
Lines 62005 62227 +222
Branches 7765 7819 +54
==========================================
- Hits 55304 54929 -375
- Misses 4479 4993 +514
- Partials 2222 2305 +83
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
I didn't have time to check the regression tests, but I assume @colm-mchugh already reviewed them. But besides that, the implementation part looks good to me, thank you!
Just confirming, yes I ran the regression tests and made some suggestions that have been incorporated (Thanks :)
Also want to note in passing, it is apparent from EXPLAIN output whether or not this feature is in effect, in addition to DEBUG messages.