-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
GH-41121: [C++] Fix: left anti join filter empty rows. #41122
Conversation
|
I don’t know why lint ci hangs without any prompt? |
Seems you need to format your codes: TEST(HashJoin, FilterEmptyRows) {
BatchesWithSchema input_left;
- input_left.batches = {ExecBatchFromJSON({int32(), utf8(), int32()}, R"([[2, "Jarry", 28]])")};
+ input_left.batches = {
+ ExecBatchFromJSON({int32(), utf8(), int32()}, R"([[2, "Jarry", 28]])")}; |
thanks, I changed. |
test_table.py failed .The test failure has nothing to do with my PR, it seems to be asof join |
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.
This is a great catch, thank you!
One minor suggestion though.
Yeah, seems unrelated to this PR. Could be the same as #41149. |
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.
+1
We should wait for some committer to approve and merge. Thank you again for the fix! cc @westonpace |
Okay, thank you |
@zanmato1984 should this better in 16.0? |
Yes, it would be nice to have it in 16.0. The condition to trigger this bug is not very rare: left-semi join with no rows matched by key meanwhile filter referring left table columns only. cc @raulcd . If we have a chance, please consider including this PR in 16.0. Thank you. |
I've change this patch to blocker |
While this would indeed be nice to have, I've removed the "Blocker" label since this doesn't seem to be a regression. |
Rebased on git main for CI. |
@github-actions crossbow submit -g cpp |
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.
This seems ok on the face of it, but I can't vouch for the correctness.
Revision: 5d59164 Submitted crossbow builds: ursacomputing/crossbow @ actions-63062f6aac |
### Rationale for this change Since the left anti filter implementation is based on the left semi filter, and an assertion error occurs when the left semi filter rows are empty, this problem should be fixed. ### What changes are included in this PR? swiss_join.cc and hash_join_node_test.cc ### Are these changes tested? Yes ### Are there any user-facing changes? No * GitHub Issue: #41121 Lead-authored-by: light-city <455954986@qq.com> Co-authored-by: Antoine Pitrou <pitrou@free.fr> Signed-off-by: Antoine Pitrou <antoine@python.org>
After merging your PR, Conbench analyzed the 7 benchmarking runs that have been run so far on merge-commit 924fbec. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 7 possible false positives for unstable benchmarks that are known to sometimes produce them. |
…41122) ### Rationale for this change Since the left anti filter implementation is based on the left semi filter, and an assertion error occurs when the left semi filter rows are empty, this problem should be fixed. ### What changes are included in this PR? swiss_join.cc and hash_join_node_test.cc ### Are these changes tested? Yes ### Are there any user-facing changes? No * GitHub Issue: apache#41121 Lead-authored-by: light-city <455954986@qq.com> Co-authored-by: Antoine Pitrou <pitrou@free.fr> Signed-off-by: Antoine Pitrou <antoine@python.org>
…41122) ### Rationale for this change Since the left anti filter implementation is based on the left semi filter, and an assertion error occurs when the left semi filter rows are empty, this problem should be fixed. ### What changes are included in this PR? swiss_join.cc and hash_join_node_test.cc ### Are these changes tested? Yes ### Are there any user-facing changes? No * GitHub Issue: apache#41121 Lead-authored-by: light-city <455954986@qq.com> Co-authored-by: Antoine Pitrou <pitrou@free.fr> Signed-off-by: Antoine Pitrou <antoine@python.org>
Rationale for this change
Since the left anti filter implementation is based on the left semi filter, and an assertion error occurs when the left semi filter rows are empty, this problem should be fixed.
What changes are included in this PR?
swiss_join.cc and hash_join_node_test.cc
Are these changes tested?
Yes
Are there any user-facing changes?
No