From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Avoid having two PKs in a partition |
Date: | 2018-03-12 22:44:53 |
Message-ID: | E1evWBZ-0004aN-GR@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Avoid having two PKs in a partition
If a table containing a primary key is attach as partition to a
partitioned table which has a primary key with a different definition,
we would happily create a second one in the new partition. Oops. It
turns out that this is because an error check in DefineIndex is executed
only if you tell it that it's being run by ALTER TABLE, and the original
code here wasn't. Change it so that it does.
Added a couple of test cases for this, also. A previously working test
started to fail in a different way than before patch because the new
check is called earlier; change the PK to plain UNIQUE so that the new
behavior isn't invoked, so that the test continues to verify what we
want it to verify.
Reported by: Noriyoshi Shinoda
Discussion: https://postgr.es/m/DF4PR8401MB102060EC2615EC9227CC73F7EEDF0@DF4PR8401MB1020.NAMPRD84.PROD.OUTLOOK.COM
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/1f8a3327a9db9a8a662fb39fdcde2337acffa68c
Modified Files
--------------
src/backend/commands/indexcmds.c | 2 +-
src/backend/commands/tablecmds.c | 2 +-
src/test/regress/expected/indexing.out | 26 +++++++++++++++++++++-----
src/test/regress/sql/indexing.sql | 22 +++++++++++++++++++---
4 files changed, 42 insertions(+), 10 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2018-03-13 14:21:52 | pgsql: Fix CREATE TABLE / LIKE with bigint identity column |
Previous Message | Alvaro Herrera | 2018-03-12 16:34:15 | Re: pgsql: Allow UNIQUE indexes on partitioned tables |