Uh oh!
There was an error while loading. Please reload this page.
Support semi join - #470
Conversation
Codecov Report
@@ Coverage Diff @@## master #470 +/- ##
==========================================
+ Coverage 75.30% 75.80% +0.50%
==========================================
Files 152 153 +1 Lines 25275 25924 +649 ==========================================
+ Hits 19033 19652 +619 - Misses 6242 6272 +30
Continue to review full report at Codecov.
|
alamb
commented
Jun 1, 2021
I plan to review this tomorrow |
Dandandan
commented
Jun 2, 2021
Related PR for anti join here: #482 |
houqp
commented
Jun 2, 2021
should the readme be updated to include semi join as well? |
I think for now we don't - I would say that at least need to have |
alamb
left a comment
There was a problem hiding this comment.
Looks good to me @Dandandan ! Nice work
| | LogicalPlan::CreateExternalTable { .. } | ||
| | LogicalPlan::Explain { .. } | ||
| | LogicalPlan::Union { .. } | ||
| | LogicalPlan::Join { .. } |
There was a problem hiding this comment.
should you also possibly conditionalize this on being a SemiJoin? like
| | LogicalPlan::Join{ .. } | |
| | LogicalPlan::Joinif*join_type == JoinType::Semi{ .. } |
So if we add a new join type in the future it doesn't accidentally get allowed / disallowed in some confusing way
There was a problem hiding this comment.
Tried that in earlier commit... But than the exhaustiveness checking gets in the way unfortunately.
There was a problem hiding this comment.
I think the only way the compiler can do it now is by explicitly matching on all the join types, but as this feature is not added https://github.com/rust-lang/rfcs/blob/master/text/2535-or-patterns.md that would be quite verbose currently
There was a problem hiding this comment.
I rewrote it a bit to use a function in the body of the join match
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
| } | ||
| } | ||
| fn supports_swap(join_type: JoinType) -> bool { |
Which issue does this PR close?
Closes#461
Rationale for this change
Adds semi join support. This will enable us to rewrite
WHERE id IN (..)andWHERE EXISTSto a (semi) join.What changes are included in this PR?
Add semi join to hash join implementation.
What's not in this PR
Are there any user-facing changes?
No