Re: Fix for typo in UUIDv7 timestamp extraction

From: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
To: Erik Nordström <erik(at)tigerdata(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Fix for typo in UUIDv7 timestamp extraction
Date: 2025-08-13 09:52:04
Message-ID: 14A13066-25E8-4916-A1A3-8282D53F2B1E@yandex-team.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Erik!

> On 13 Aug 2025, at 11:05, Erik Nordström <erik(at)tigerdata(dot)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.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Shinya Kato 2025-08-13 09:53:59 Re: Improve tab completion for various SET/RESET forms
Previous Message Shlok Kyal 2025-08-13 09:21:42 Re: Skipping schema changes in publication