Protect against timestamp underflow in uuidv7(interval) - Mailing list pgsql-hackers

From Tristan Partin
Subject Protect against timestamp underflow in uuidv7(interval)
Date
Msg-id DJGTQ0SA6X9M.1B0PG304MDM9T@partin.io
Whole thread
Responses Re: Protect against timestamp underflow in uuidv7(interval)
List pgsql-hackers
We were silently allowing underflowing the generated timestamp for the
UUIDv7 value:

    # SELECT uuid_extract_timestamp(uuidv7('-57 years'::interval));
       uuid_extract_timestamp
    -----------------------------
     10889-01-23 04:02:36.375+00
    (1 row)

RFC 9562[0] doesn't seem to specify that this should be allowed, so
generate an error and forbid the underflow.

I checked the Rust uuid crate[1], and it also errors out with
a timestamp earlier than the Unix epoch.

[0]: https://www.rfc-editor.org/rfc/rfc9562.html
[1]: https://github.com/uuid-rs/uuid/blob/1e6a9669e30d53bae50fd52f16b7a1961fda236b/src/timestamp.rs#L198-L220

--
Tristan Partin
PostgreSQL Contributors Team
AWS (https://aws.amazon.com)

Attachment

pgsql-hackers by date:

Previous
From: Dean Rasheed
Date:
Subject: Re: Global temporary tables
Next
From: Michael Paquier
Date:
Subject: Re: Handle concurrent drop when doing whole database vacuum