feat(cubesql): Support FULL and RIGHT joins with non-push-to-Cube SQL push down#11008
feat(cubesql): Support FULL and RIGHT joins with non-push-to-Cube SQL push down#11008MazterQyou wants to merge 1 commit into
Conversation
|
Claude finished @MazterQyou's task in 2m 16s —— View job Code ReviewVerdict: Looks good overall — clean, well-scoped fix. 0 high, 0 medium, 3 low (all suggestions / nits posted inline). Full review (expand)SummaryThe fix is well-scoped: the rewrite already produced a correct plan for FULL/RIGHT joins of two grouped subqueries; the PR just wires SQL generation and join-type templates through. Separation between the push-to-Cube path (refuses FULL/RIGHT) and the non-push-to-Cube path (now supports them) is clearly commented and consistently enforced. What's good
Findings (all low)
Security / performance
Checklist
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #11008 +/- ##
==========================================
+ Coverage 78.82% 83.37% +4.55%
==========================================
Files 471 255 -216
Lines 94412 77447 -16965
Branches 3494 0 -3494
==========================================
- Hits 74417 64569 -9848
+ Misses 19486 12878 -6608
+ Partials 509 0 -509
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
… push down Signed-off-by: Alex Qyoun-ae <4062971+MazterQyou@users.noreply.github.com>
5fecb83 to
37109d0
Compare
|
Claude finished @MazterQyou's task in 1m 6s —— View job Code ReviewRe-checked after PR synchronize: no new commits since the prior review (still Verdict: Looks good overall — clean, well-scoped fix. 0 high, 0 medium, 3 low (suggestions only; all already inline on the PR). Prior findings (still apply)
No new high/medium issues introduced. Security and performance unchanged from prior pass. |
Check List
Description of Changes Made
This PR fixes a regression introduced by grouped joins with SQL push down (#10234): a FULL OUTER JOIN of two grouped subqueries (e.g. period-over-period cost comparison) now fails with
Unsupported join type for join subquery: Full. The rewrite already produced the correct plan; only SQL generation and the join-type templates were limited to Inner/Left.This adds FULL and RIGHT support for the non-push-to-Cube path (both sides as standalone subqueries, where outer-join semantics map cleanly to SQL). The push-to-Cube path — where the join is folded inside the Cube query with
its own grouping/measures — explicitly keeps refusing FULL/RIGHT, since NULL-extended outer rows there are not validated.
Push down is template-gated: FULL/RIGHT only push down when the target data source declares the
join_types/*template, otherwise the join falls back to DataFusion.