Skip to content

fix: remap SortMergeJoin filter during projection pushdown - #24415

Open
haohuaijin wants to merge 4 commits into
apache:mainfrom
haohuaijin:codex/fix-sort-merge-join-filter-projection
Open

fix: remap SortMergeJoin filter during projection pushdown#24415
haohuaijin wants to merge 4 commits into
apache:mainfrom
haohuaijin:codex/fix-sort-merge-join-filter-projection

Conversation

@haohuaijin

@haohuaijin haohuaijin commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

Projection pushdown through SortMergeJoinExec could reuse stale join-filter indices and return incorrect results.

What changes are included in this PR?

  • Rewrite the JoinFilter during projection pushdown.
  • Reject the swap when a filter column cannot be mapped.
  • Add an SQLLogicTest for the incorrect-result case.

Are these changes tested?

Yes. The SQLLogicTest verifies the physical plan and the expected (1, 1) result. The full Rust lint and extended workspace test suites also pass.

Are there any user-facing changes?

Affected queries now return correct results. There are no API changes.

@github-actions github-actions Bot added sqllogictest SQL Logic Tests (.slt) physical-plan Changes to the physical-plan crate labels Aug 16, 2026
@codecov-commenter

codecov-commenter commented Aug 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.24%. Comparing base (bb038a6) to head (887d68e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24415      +/-   ##
==========================================
+ Coverage   81.23%   81.24%   +0.01%     
==========================================
  Files        1112     1112              
  Lines      390635   390648      +13     
  Branches   390635   390648      +13     
==========================================
+ Hits       317350   317401      +51     
+ Misses      54650    54605      -45     
- Partials    18635    18642       +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

physical-plan Changes to the physical-plan crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SortMergeJoin projection pushdown can reuse stale JoinFilter indices

2 participants