Thread
Commits
-
Fix constant when extracting timestamp from UUIDv7.
- 83773eaf6578 18.0 landed
- 37265ca01f0f 19 (unreleased) landed
-
Fix for typo in UUIDv7 timestamp extraction
Erik Nordström <erik@tigerdata.com> — 2025-08-13T08:05:04Z
Hi, I think I found a small typo in the function that extracts a timestamp from a UUIDv7 (uuid_extract_timestamp). Unless I am mistaken, the constant US_PER_MS should be used instead of NS_PER_US when converting milliseconds to microseconds. Fortunately, these constants are the same so the calculation is still correct. Anyway, attaching a patch to fix this typo. On a related note, I am wondering why this function doesn't extract and use the sub-millisecond information in the rand_a bits? These bits are added when generating the UUID, but they don't seem to be extracted. Hopefully somebody could shed some light on this and whether it would be a worthwhile addition. Thank you, - Erik
-
Re: Fix for typo in UUIDv7 timestamp extraction
x4mmm@yandex-team.ru — 2025-08-13T09:52:04Z
Hi Erik! > On 13 Aug 2025, at 11:05, Erik Nordström <erik@tigerdata.com> wrote: > > I think I found a small typo in the function that extracts a timestamp from a UUIDv7 (uuid_extract_timestamp). Unless I am mistaken, the constant US_PER_MS should be used instead of NS_PER_US when converting milliseconds to microseconds. Fortunately, these constants are the same so the calculation is still correct. Wow, that's a very good level of proofreading! Yes, you are correct, it's must be US_PER_MS. > > Anyway, attaching a patch to fix this typo. LGTM. > > On a related note, I am wondering why this function doesn't extract and use the sub-millisecond information in the rand_a bits? These bits are added when generating the UUID, but they don't seem to be extracted. Hopefully somebody could shed some light on this and whether it would be a worthwhile addition. UUID might be formed by any external system, rand_a bits are not guaranteed to be non-random. Well, in some sense, reading time is reading random number, but anyway, we don't know for sure how those bits are used. And even in Postgres usage of sub-millisecond fractions depends on OS. I think we can have a function in an extensions, that does pretend that UUID was generated by known algorithm. Or even SQL function to extract microseconds. Thanks! Best regards, Andrey Borodin.
-
Re: Fix for typo in UUIDv7 timestamp extraction
Erik Nordström <erik@tigerdata.com> — 2025-08-13T12:53:43Z
On Wed, Aug 13, 2025 at 11:52 AM Andrey Borodin <x4mmm@yandex-team.ru> wrote: > Hi Erik! > > > On 13 Aug 2025, at 11:05, Erik Nordström <erik@tigerdata.com> wrote: > > > > I think I found a small typo in the function that extracts a timestamp > from a UUIDv7 (uuid_extract_timestamp). Unless I am mistaken, the constant > US_PER_MS should be used instead of NS_PER_US when converting milliseconds > to microseconds. Fortunately, these constants are the same so the > calculation is still correct. > > Wow, that's a very good level of proofreading! Yes, you are correct, it's > must be US_PER_MS. > > > > > Anyway, attaching a patch to fix this typo. > > LGTM. > Ok, maybe a committer would like to commit this change immediately? > > > > > > On a related note, I am wondering why this function doesn't extract and > use the sub-millisecond information in the rand_a bits? These bits are > added when generating the UUID, but they don't seem to be extracted. > Hopefully somebody could shed some light on this and whether it would be a > worthwhile addition. > > UUID might be formed by any external system, rand_a bits are not > guaranteed to be non-random. Well, in some sense, reading time is reading > random number, but anyway, we don't know for sure how those bits are used. > And even in Postgres usage of sub-millisecond fractions depends on OS. > > I think we can have a function in an extensions, that does pretend that > UUID was generated by known algorithm. Or even SQL function to extract > microseconds. > > That's what I suspected. Thanks for clarifying. Best, Erik
-
Re: Fix for typo in UUIDv7 timestamp extraction
Masahiko Sawada <sawada.mshk@gmail.com> — 2025-08-15T18:44:53Z
On Thu, Aug 14, 2025 at 5:10 AM Erik Nordström <erik@tigerdata.com> wrote: > > > > On Wed, Aug 13, 2025 at 11:52 AM Andrey Borodin <x4mmm@yandex-team.ru> wrote: >> >> Hi Erik! >> >> > On 13 Aug 2025, at 11:05, Erik Nordström <erik@tigerdata.com> wrote: >> > >> > I think I found a small typo in the function that extracts a timestamp from a UUIDv7 (uuid_extract_timestamp). Unless I am mistaken, the constant US_PER_MS should be used instead of NS_PER_US when converting milliseconds to microseconds. Fortunately, these constants are the same so the calculation is still correct. >> >> Wow, that's a very good level of proofreading! Yes, you are correct, it's must be US_PER_MS. >> >> > >> > Anyway, attaching a patch to fix this typo. >> >> LGTM. > > > Ok, maybe a committer would like to commit this change immediately? Thank you for the report! I'll push the patch to master and v18 shortly. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
-
Re: Fix for typo in UUIDv7 timestamp extraction
Masahiko Sawada <sawada.mshk@gmail.com> — 2025-08-15T19:01:14Z
On Fri, Aug 15, 2025 at 11:44 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Thu, Aug 14, 2025 at 5:10 AM Erik Nordström <erik@tigerdata.com> wrote: > > > > > > > > On Wed, Aug 13, 2025 at 11:52 AM Andrey Borodin <x4mmm@yandex-team.ru> wrote: > >> > >> Hi Erik! > >> > >> > On 13 Aug 2025, at 11:05, Erik Nordström <erik@tigerdata.com> wrote: > >> > > >> > I think I found a small typo in the function that extracts a timestamp from a UUIDv7 (uuid_extract_timestamp). Unless I am mistaken, the constant US_PER_MS should be used instead of NS_PER_US when converting milliseconds to microseconds. Fortunately, these constants are the same so the calculation is still correct. > >> > >> Wow, that's a very good level of proofreading! Yes, you are correct, it's must be US_PER_MS. > >> > >> > > >> > Anyway, attaching a patch to fix this typo. > >> > >> LGTM. > > > > > > Ok, maybe a committer would like to commit this change immediately? > > Thank you for the report! I'll push the patch to master and v18 shortly. Pushed. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com