-
Notifications
You must be signed in to change notification settings - Fork 355
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
Triple primary key 2 #213
Triple primary key 2 #213
Conversation
I ran into problems when trying to use
Tried to implement |
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.
Please test and update for tripple keys that don't only use &[u8]
@@ -237,6 +277,38 @@ mod test { | |||
); | |||
} | |||
|
|||
#[test] | |||
#[cfg(feature = "iterator")] | |||
fn range_triple_key() { |
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.
Good test. This is what I want to see for the full-stack usage.
Can you update the TRIPLE to (&[u8], Int32Key, Int64Key)
and verify this works just 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.
Sure.
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.
I fixed the prefix implemention in my last commit.
You should be able to use it in the new code.
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.
I need to reflect why we cannot satisfy Prefix automatically for anything that implements PrimaryKey - I assume this is a subset of the work.
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.
I need to reflect why we cannot satisfy Prefix automatically for anything that implements PrimaryKey - I assume this is a subset of the work.
I guess the idea is to be able to range()
over the last part of a given key; that is, the one that doesn't implement Prefixer
.
That's OK IMO. What I don't like is that currently prefix()
only works for the "full" prefix, i. e. in case of triple keys, we cannot prefix only on the first element of the triple.
What I'm now thinking is that maybe we can use (abuse?) notation like (T, (U, V))
, for definining a key that is internally "flat", but can be prefixed over its first element.
Yes, this is because the Prefixer implementation for Pk2 is broken (it only works with default type |
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.
Looking better. Thank you for finding these issues
Thank you for the review, and for the fixes. |
Follow-up of #210.
Fixes triple key
Prefix
type. AddMap
triple keys tests.