Re: UUID v7

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: "Andrey M(dot) Borodin" <x4mmm(at)yandex-team(dot)ru>
Cc: Sergey Prokhorenko <sergeyprokhorenko(at)yahoo(dot)com(dot)au>, Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>, pgsql-hackers mailing list <pgsql-hackers(at)postgresql(dot)org>, Aleksander Alekseev <aleksander(at)timescale(dot)com>, Przemysław Sztoch <przemyslaw(at)sztoch(dot)pl>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Mat Arye <mat(at)timescaledb(dot)com>, Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, Nikolay Samokhvalov <samokhvalov(at)gmail(dot)com>, Junwang Zhao <zhjwpku(at)gmail(dot)com>
Subject: Re: UUID v7
Date: 2024-03-14 11:07:56
Message-ID: d59d7cea-fe4a-411d-a63c-2f871cb68a51@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 10.03.24 13:59, Andrey M. Borodin wrote:
>> The functions uuid_extract_ver and uuid_extract_var could be named
>> uuid_extract_version and uuid_extract_variant. Otherwise, it's hard
>> to tell them apart, with only one letter different.
>
> Renamed.

Another related comment: Throughout your patch, swap the order of
uuid_extract_variant and uuid_extract_version. First, this makes more
sense because version is subordinate to variant, and also it makes it
alphabetical.

>> I think the behavior of uuid_extract_var(iant) is wrong. The code
>> takes just two bits to return, but the draft document is quite clear
>> that the variant is 4 bits (see Table 1).
>
> Well, it was correct only for implemented variant. I've made version that implements full table 1 from section 4.1.

I think we are still interpreting this differently. I think
uuid_extract_variant should just return whatever is in those four bits.
Your function comment says "Can return only 0, 0b10, 0b110 and 0b111.",
which I don't think it is correct. It should return 0 through 15.

>> I would have expected that, since gettimeofday() provides microsecond
>> precision, we'd put the extra precision into "rand_a" as per Section 6.2 method 3.
>
> I had chosen method 2 over method 3 as most portable. Can we be sure how many bits (after reading milliseconds) are there across different OSes?

I think this should have been researched. If we don't know how many
bits we have, how do we know we have enough for milliseconds? I think
we should at least have some kind of idea, if we are going to have this
conversation.

In response to

  • Re: UUID v7 at 2024-03-10 12:59:10 from Andrey M. Borodin

Responses

  • Re: UUID v7 at 2024-03-14 11:25:56 from Andrey M. Borodin

Browse pgsql-hackers by date

  From Date Subject
Next Message Melih Mutlu 2024-03-14 11:22:21 Re: Flushing large data immediately in pqcomm
Previous Message Dilip Kumar 2024-03-14 10:55:34 Re: BitmapHeapScan streaming read user and prelim refactoring