I'm not sure of the less than vs less than or equals in this one, so it may be my ignorance... but which partition gets records with a date of '24-02-01", it seems that without a more explicit definition there is ambiguity on dates at the partition limits when
those dates are common to multiple partitions?
To avoid this shouldn't the definition be:
> xof=# create table t (pk bigint not null, ts timestamp not null) partition by range (ts, pk);
> CREATE TABLE > xof=# create table t1 partition of t for values from ('2024-01-01'::timestamp, minvalue) to ('2024-01-31'::timestamp, maxvalue); > CREATE TABLE > xof=# create table t2 partition of t for values from ('2024-02-01'::timestamp, minvalue) to ('2024-02-29'::timestamp, maxvalue);
Brent Wood
Principal Technician, Fisheries NIWA DDI: +64 (4) 3860529 From: Christophe Pettus <xof@xxxxxxxxxxxx>
Sent: Wednesday, September 11, 2024 10:13 To: pgsql-general <pgsql-general@xxxxxxxxxxxxxx> Subject: Overlapping values (?) in multi-column partitioned tables Hi,
I am clearly not understanding something. Consider: > xof=# create table t (pk bigint not null, ts timestamp not null) partition by range (ts, pk); > CREATE TABLE > xof=# create table t1 partition of t for values from ('2024-01-01'::timestamp, minvalue) to ('2024-02-01'::timestamp, maxvalue); > CREATE TABLE > xof=# create table t2 partition of t for values from ('2024-02-01'::timestamp, minvalue) to ('2024-03-01'::timestamp, maxvalue); > ERROR: partition "t2" would overlap partition "t1" > LINE 1: ...on of t for values from ('2024-02-01'::timestamp, minvalue) ... > ^ > xof=# In what way do those partitions overlap? In other words, there does not appear to be a value of (ts, pk) having '2024-01-01'::timestamp <= ts < '2024-03-01'::timestamp for any pk where it would be ambiguous which partition that row would go into. (I'm imagining it on a cartesian plane, and there isn't any overlap between the rectangles those partition boundaries define.) I'm obviously missing something, but... what? Thank you!
Note: This email is intended solely for the use of the addressee and may contain information that is confidential or subject to legal professional privilege. If you receive this email in error please immediately notify the sender and delete the email. |