All;
I created a partitioned table (using declarative partitioning) and I am seeing an error inserting a row, the db claims there is no partition for my insert but as far as I can thell there is.
Here is my setup:
CREATE TABLE
localdata2 (
local_id bigserial ,
logts timestamp without time zone,
mintemp int,
maxtemp int,
description text
) PARTITION BY RANGE (local_id) ;
CREATE TABLE
remote1_data1 PARTITION OF localdata2
FOR VALUES FROM ('1') TO ('500000') ;
CREATE TABLE
remote2_data1 PARTITION OF localdata2
FOR VALUES FROM ('500001') TO ('5000000') ;
\d+ localdata2
Partitioned
table "public.localdata2"
Column | Type | Collation | Nullable
| Default | Storage |
Compression | Stats target | Description
-------------+-----------------------------+-----------+----------+----------------------------------------------+----------+-------------+--------------+-------------
local_id | bigint | | not null
| nextval('localdata2_local_id_seq'::regclass) | plain |
| |
logts | timestamp without time zone | |
| | plain
| | |
mintemp | integer | |
| | plain
| | |
maxtemp | integer | |
| | plain
| | |
description | text | |
| |
extended | | |
Partition key: RANGE (local_id)
Partitions: remote1_data1 FOR VALUES FROM ('1') TO ('500000'),
remote2_data1 FOR VALUES FROM ('500001') TO
('5000000')
insert into
localdata2
values (500000, now(), 21, 55, 'description goes here');
ERROR: no partition of relation "localdata2" found for row
DETAIL: Partition key of the failing row contains (local_id) =
(500000).
The remote1_data1 partition should allow the value 500000 for the local_id but it is failing...
Thoughts?
Thanks in advance