-
Notifications
You must be signed in to change notification settings - Fork 4k
GH-20339: [C++] Add residual filter support to swiss join #39487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
|
| return static_cast<uint32_t>(first_greater - entries) - 1; | ||
| } | ||
|
|
||
| void SwissTableForJoin::payload_ids_to_key_ids(int num_rows, const uint32_t* payload_ids, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deleted because used nowhere in existing code base.
|
@zanmato1984 would it be possible to add some test cases? |
Yes, I am working on that. |
|
@zanmato1984 I will completely review once the test cases are there. |
|
I tried to rebase and get things messy. Let me fix my branch first. Sorry for the trouble, guys :( |
118c93e to
629cdd7
Compare
|
Hi @westonpace , I've addressed the comments you previously left except one thing I'm uncertain about in my last post. Would you please take a look again? Thanks! |
|
After merging your PR, Conbench analyzed the 7 benchmarking runs that have been run so far on merge-commit 0ce7267. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 11 possible false positives for unstable benchmarks that are known to sometimes produce them. |
Rationale for this change
Add residual filter support to swiss join.
What changes are included in this PR?
JoinResidualFilteras a centralized structure to evaluate residual filter in swiss join. It has various flavors of filtering for various join types. Zero-overhead is guaranteed for trivial filters (literal true and sometimes literal false/null). More detailed explanation in code comments.JoinProbeProcessor::OnNextBatch) to better cope withJoinResidualFiltercalls.Are these changes tested?
Legacy UTs (
HashJoin.Random,HashJoin.ResidualFilterandHashJoin.TrivialResidualFilter) cover part of this change. New fine-grained residual filter cases added as well.Are there any user-facing changes?
No.