-
Notifications
You must be signed in to change notification settings - Fork 177
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
Implement RelValue: Eq + Hash
#1107
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8c18d96
to
04ccff0
Compare
adcb1c8
to
588f175
Compare
03f23d3
to
28de797
Compare
This was referenced Apr 22, 2024
Merged
87255f0
to
5ef9bd3
Compare
28de797
to
a9bf0c0
Compare
RelValue: Eq + Hash
, RowRef: Hash + PartialEq<ProductValue>
a9bf0c0
to
3beedc3
Compare
RelValue: Eq + Hash
, RowRef: Hash + PartialEq<ProductValue>
RelValue: Eq + Hash
9a670c5
to
91ba9db
Compare
3beedc3
to
c07882a
Compare
Could we get the motivation for this PR in the description? |
There ya go :) |
gefjon
approved these changes
Apr 30, 2024
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.
Style nits. Functionality looks good, I just want to use words to describe things rather than letters.
c07882a
to
9422149
Compare
9422149
to
0c8d972
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Changes
The main goal of this PR is to make
RelValue
s directly usable in theIncrementalJoin
algorithm'sHashSet
, therebly avoiding forcing everything toCow<'_, PV>
, which is useful in some cases. To do this,RelValue
must implementEq + Hash
and to do that,PV
andRowRef
must be consistent in terms of equality and hash functions. The latter is achieved in a series of PRs upon which this PR is based. HavingRowRef: PartialEq<PV>
and consistent hashes is also useful for the insert and delete paths.impl Eq + Hash for RelValue
Based on #1164.
Fixes #1119.
API and ABI breaking changes
None
Expected complexity level and risk
2
Testing
Proptests were added for the new code in previous PRs.