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 (aff5850) to head (2730002).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24415      +/-   ##
==========================================
+ Coverage   81.23%   81.24%   +0.01%     
==========================================
  Files        1111     1111              
  Lines      390208   390221      +13     
  Branches   390208   390221      +13     
==========================================
+ Hits       316990   317045      +55     
+ Misses      54591    54549      -42     
  Partials    18627    18627              

☔ 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