-
Notifications
You must be signed in to change notification settings - Fork 1.9k
feat: Support RightMark join for NestedLoop and Hash join #16083
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
Changes from all commits
d3ef287
87a058b
dd92f4e
69b9dfb
8f7f429
c489139
bb767bb
17f4843
396a45b
86e1c60
3bb79b5
0ae7414
ecd904c
b01e95d
1bef6dc
ed8cd56
e9978b8
92ecd2b
ae76056
c0a4185
a58d516
92a2b11
e9a8d48
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -672,10 +672,10 @@ fn outer_columns_helper_multi<'a, 'b>( | |
| /// Depending on the join type, it divides the requirement indices into those | ||
| /// that apply to the left child and those that apply to the right child. | ||
| /// | ||
| /// - For `INNER`, `LEFT`, `RIGHT` and `FULL` joins, the requirements are split | ||
| /// between left and right children. The right child indices are adjusted to | ||
| /// point to valid positions within the right child by subtracting the length | ||
| /// of the left child. | ||
| /// - For `INNER`, `LEFT`, `RIGHT`, `FULL`, `LEFTMARK`, and `RIGHTMARK` joins, | ||
| /// the requirements are split between left and right children. The right | ||
| /// child indices are adjusted to point to valid positions within the right | ||
| /// child by subtracting the length of the left child. | ||
| /// | ||
| /// - For `LEFT ANTI`, `LEFT SEMI`, `RIGHT SEMI` and `RIGHT ANTI` joins, all | ||
| /// requirements are re-routed to either the left child or the right child | ||
|
|
@@ -704,7 +704,8 @@ fn split_join_requirements( | |
| | JoinType::Left | ||
| | JoinType::Right | ||
| | JoinType::Full | ||
| | JoinType::LeftMark => { | ||
| | JoinType::LeftMark | ||
| | JoinType::RightMark => { | ||
|
Comment on lines
-707
to
+708
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I admit that I don't understand why LeftMark/RightMark are different from their Semi/Anti counterparts. It seems like the documentation of this method is missing LeftMark / RightMark too
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added the doc! I'm not quite sure either, I think it has to do with the extra boolean column crossing the boundary into the other side, resulting in the mark column being missing from the requirements |
||
| // Decrease right side indices by `left_len` so that they point to valid | ||
| // positions within the right child: | ||
| indices.split_off(left_len) | ||
|
|
||
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.
It is needed to add RightMark Join support to SortMergeJoin execution as well
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.
#16385
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.
Oh I will close #16226 as it is a duplicate