-
-
Notifications
You must be signed in to change notification settings - Fork 914
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
v7: passing options.msecs
results in zero-value timestamp
#764
Comments
uuid.v7
: is it possible to specify only the msecs
option?options.msecs
results in zero-value timestamp
@pmccarren I've confirmed this is an issue. I think this occurs because the timestamp field is set from the internal Can you take a look? |
TL;DR: Providing any custom
|
@robinpokorny All good points, and thanks for putting that test together. This does raise a couple questions that I don't have good answers to at the moment: Should IDs generated with user-supplied It's been a good while since I gave any thought to this aspect of the Where user-provided options overlap with internal state, do they represent the state prior to UUID generation or the state reflected in the generated UUID? |
I created a PR that fixes the main issue.
We should support generation of multiple UUIDs within the same millisecond that was user-provided. Ideally with monotonicity. One example is backfilling. Current time is then treated as a default and does not have a special treating. One unsolved (and probably unsolvable) case is when the the function is called by alternating timestamps. Then each time it's treated as the first and monotonicity is lost. I can imagine this can happen as this library is quite popular so multiple sources can call it simultaneously. I wrote about this in the original PR (point 5): #681 (comment) |
Co-authored-by: Robert Kieffer <robert@broofa.com> Co-authored-by: Robin Pokorny <me@robinpokorny.com>
Co-authored-by: Robert Kieffer <robert@broofa.com> Co-authored-by: Robin Pokorny <me@robinpokorny.com>
Co-authored-by: Robert Kieffer <robert@broofa.com> Co-authored-by: Robin Pokorny <me@robinpokorny.com>
In
uuid.v7
, when themsecs
option is specified without theseq
option, the timestamp becomes nil despite being a value greater than 0. Is this intentional behavior? From what I can see in the implementation, it appears thatuuid.v7
tries to manage the monotonic sequence counter unless it is specified as an option.Example:
Addition 2 days after issue creation:
Since the bug label was added, I am updating the information based on the ISSUE_TEMPLATE.
Description of the problem
Please refer to the above.
Recipe for reproducing
Please refer to the "Example:" above.
Additional information
N/A
Environment
The text was updated successfully, but these errors were encountered: