Hi Erik!

> On 13 Aug 2025, at 11:05, Erik Nordström <e...@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.

Reply via email to