I am against turning the DBMS into another C++, in which they do not so much 
design something new as fix bugs in production after a crash.
As for partitioning, I already wrote to Andrey Borodin that we need a special 
function to generate a partition id using the UUIDv7 timestamp or even 
simultaneously with the generation of the timestamp. For example, every month 
(or so, since precision is not needed here) a new partition is created. Here's 
a good example: 
https://elixirforum.com/t/partitioning-postgres-tables-by-timestamp-based-uuids/60916
But without a separate function for extracting the entire timestamp from the 
UUID! Let's solve this specific problem, and not give the developers a grenade 
with the safety removed. Many developers have already decided to store the 
timestamp in UUIDv7, so as not to create a separate created_at field. Then they 
will delete table records with the old timestamp, etc. Horrible mistakes are 
simply guaranteed.

Sergey Prokhorenko sergeyprokhore...@yahoo.com.au 

    On Thursday, 25 January 2024 at 09:51:58 am GMT+3, Andrey M. Borodin 
<x4...@yandex-team.ru> wrote:  
 
 

> On 25 Jan 2024, at 09:40, Nikolay Samokhvalov <n...@postgres.ai> wrote:
> 
> From a practical point of view, these two things are extremely important to 
> have to support partitioning. It is better to implement limitations than 
> throw them away.

Postgres always was a bit hackerish, allowing slightly more then is safe. I.e. 
you can define immutable function that is not really immutable, turn off 
autovacuum or fsync. Why bother with safety guards here?
My opinion is that we should have this function to extract timestamp. Even if 
it can return strange values for imprecise RFC implementation.


> On 25 Jan 2024, at 02:15, Jelte Fennema-Nio <postg...@jeltef.nl> wrote:
> 
> So +1 for erroring when you provide a timestamp outside of that range
> (either too far in the past or too far in the future).


OK, it seems like we have some consensus on ERRORing..

Do we have any other open items? Does v13 address all open items? Maybe let’s 
compose better error message?


Best regards, Andrey Borodin.  

Reply via email to