-
Notifications
You must be signed in to change notification settings - Fork 836
feat(query): add nested loop join for new experimental hash join #18961
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
base: main
Are you sure you want to change the base?
Conversation
e90e16f to
1b2c400
Compare
6ed7c25 to
0fb419e
Compare
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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
src/query/service/src/pipelines/processors/transforms/new_hash_join/transform_hash_join.rs
Outdated
Show resolved
Hide resolved
| return; | ||
| } | ||
|
|
||
| if matches!( |
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.
Perhaps we can move the branch logic into the nested loop join implementation? I see it only prevents the real finalize build logic. Please let me know if I'm missing any critical information.
Docker Image for PR
|
| .map(|data_type| data_type.remove_nullable().is_bitmap()) | ||
| .unwrap_or_default() => | ||
| { | ||
| // no function matches signature `eq(Bitmap NULL, Bitmap NULL) |
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.
Is it reasonable that eq (bitmap NULL, bitmap NULL) is only available in join? @sundy-li
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.
We can add more signatures for bitmap types.
eq(bitmap, bitmap)alias tobitmap_count( bitmap_xor(a, b) ) = 0,bitmap_and_count,bitmap_or_count,bitmap_xor_count
3277343 to
321f36d
Compare
Docker Image for PR
|
Docker Image for PR
|
ClickBench Report |
|
benchmark version: pr-18961-bbf72d7-1764129337 duration: 687ms duration: 834ms |
I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/
Summary
Allow new hash join to switch to nested loop join implementation when the size on the build side is less than the new setting
nested_loop_join_threshold. Only support inner join for now.Tests
Type of change
This change is