BUG #15587: Partitions with ALTER TABLE ADD CONSTRAINT
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: jesper.pedersen@redhat.com
Date: 2019-01-10T13:55:24Z
Lists: pgsql-bugs
The following bug has been logged on the website:
Bug reference: 15587
Logged by: Jesper Pedersen
Email address: jesper.pedersen@redhat.com
PostgreSQL version: 11.1
Operating system: Fedora 28
Description:
Hi,
The following works
CREATE TABLE t1 (i1 INT NOT NULL, i2 INT NOT NULL) PARTITION BY HASH (i1);
\o /dev/null
SELECT 'CREATE TABLE t1_p' || x::text || ' PARTITION OF t1
FOR VALUES WITH (MODULUS 64, REMAINDER ' || x::text || ');'
from generate_series(0,63) x;
\gexec
\o
ALTER TABLE ONLY t1 ADD CONSTRAINT uniq_t1_i1_i2 UNIQUE (i1, i2);
which gives
test=# \d+ t1
Partitioned table "public.t1"
Column | Type | Collation | Nullable | Default | Storage | Stats target
| Description
--------+---------+-----------+----------+---------+---------+--------------+-------------
i1 | integer | | not null | | plain |
|
i2 | integer | | not null | | plain |
|
Partition key: HASH (i1)
Indexes:
"uniq_t1_i1_i2" UNIQUE CONSTRAINT, btree (i1, i2) INVALID
Removing ONLY from the ALTER command makes the index correct.
All branches.
Best regards,
Jesper
Commits
-
Fix creation of duplicate foreign keys on partitions
- 0325d7a5957b 12.0 landed
- 4dff8935fbab 11.2 landed