Skip to content
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

[C++][Compute] Add residual predicate support to new (Swiss) hash join #20339

Closed
asfimport opened this issue Jul 26, 2022 · 1 comment · Fixed by #39487
Closed

[C++][Compute] Add residual predicate support to new (Swiss) hash join #20339

asfimport opened this issue Jul 26, 2022 · 1 comment · Fixed by #39487

Comments

@asfimport
Copy link
Collaborator

asfimport commented Jul 26, 2022

Only HashJoinBasicImpl supports residual predicates (non-equality joins). This functionality needs to be ported to SwissJoin as well.

Reporter: Michal Nowakiewicz / @michalursa

Related issues:

Note: This issue was originally created as ARROW-17202. Please see the migration documentation for further details.

@zanmato1984
Copy link
Collaborator

take

westonpace pushed a commit that referenced this issue Mar 12, 2024
### Rationale for this change

Add residual filter support to swiss join.

### What changes are included in this PR?

1. Added class `JoinResidualFilter` as 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.
2. Tuned the structure of swiss join main body (`JoinProbeProcessor::OnNextBatch`) to better cope with `JoinResidualFilter` calls.

### Are these changes tested?

Legacy UTs (`HashJoin.Random`, `HashJoin.ResidualFilter` and `HashJoin.TrivialResidualFilter`) cover part of this change. New fine-grained residual filter cases added as well.

### Are there any user-facing changes?

No.

* Closes: #20339

Lead-authored-by: zanmato <zanmato1984@gmail.com>
Co-authored-by: zanmato1984 <zanmato1984@gmail.com>
Co-authored-by: Ruoxi Sun <zanmato1984@gmail.com>
Co-authored-by: Rossi Sun <zanmato1984@gmail.com>
Signed-off-by: Weston Pace <weston.pace@gmail.com>
@westonpace westonpace added this to the 16.0.0 milestone Mar 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants