From 28fa04ddcb95906e4cab659f2c835e9099219db3 Mon Sep 17 00:00:00 2001 From: Amul Sul Date: Wed, 22 Apr 2020 05:42:12 -0400 Subject: [PATCH v2] Remove unwanted assert check and a slight tweak to test. --- src/backend/commands/tablecmds.c | 1 - src/test/regress/expected/foreign_key.out | 8 ++++---- src/test/regress/sql/foreign_key.sql | 8 ++++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 037d457c3d4..5dddc20964f 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -9042,7 +9042,6 @@ CloneFkReferenced(Relation parentRel, Relation partitionRel) conpfeqop, conppeqop, conffeqop); - Assert(numfks == attmap->maplen); for (int i = 0; i < numfks; i++) mapped_confkey[i] = attmap->attnums[confkey[i] - 1]; diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out index 07bd5b6434f..039777500d6 100644 --- a/src/test/regress/expected/foreign_key.out +++ b/src/test/regress/expected/foreign_key.out @@ -2075,9 +2075,9 @@ drop cascades to table fkpart0.fk_part -- attached) after creating the foreign key. CREATE SCHEMA fkpart3; SET search_path TO fkpart3; -CREATE TABLE pk (a int PRIMARY KEY) PARTITION BY RANGE (a); +CREATE TABLE pk (a int PRIMARY KEY, d int) PARTITION BY RANGE (a); CREATE TABLE pk1 PARTITION OF pk FOR VALUES FROM (0) TO (1000); -CREATE TABLE pk2 (b int, a int); +CREATE TABLE pk2 (b int, a int, d int); ALTER TABLE pk2 DROP COLUMN b; ALTER TABLE pk2 ALTER a SET NOT NULL; ALTER TABLE pk ATTACH PARTITION pk2 FOR VALUES FROM (1000) TO (2000); @@ -2090,7 +2090,7 @@ ALTER TABLE fk ATTACH PARTITION fk2 FOR VALUES FROM (750) TO (3500); CREATE TABLE pk3 PARTITION OF pk FOR VALUES FROM (2000) TO (3000); CREATE TABLE pk4 (LIKE pk); ALTER TABLE pk ATTACH PARTITION pk4 FOR VALUES FROM (3000) TO (4000); -CREATE TABLE pk5 (c int, b int, a int NOT NULL) PARTITION BY RANGE (a); +CREATE TABLE pk5 (c int, b int, a int NOT NULL, d int) PARTITION BY RANGE (a); ALTER TABLE pk5 DROP COLUMN b, DROP COLUMN c; CREATE TABLE pk51 PARTITION OF pk5 FOR VALUES FROM (4000) TO (4500); CREATE TABLE pk52 PARTITION OF pk5 FOR VALUES FROM (4500) TO (5000); @@ -2116,7 +2116,7 @@ INSERT into fk VALUES (4500); ERROR: insert or update on table "fk3" violates foreign key constraint "fk_a_fkey" DETAIL: Key (a)=(4500) is not present in table "pk". -- insert into the referenced table, now they should work -INSERT into pk VALUES (1), (1000), (2000), (3000), (4000), (4500); +INSERT into pk(a) VALUES (1), (1000), (2000), (3000), (4000), (4500); INSERT into fk VALUES (1), (1000), (2000), (3000), (4000), (4500); -- should fail: referencing value present DELETE FROM pk WHERE a = 1; diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql index c5c9011afcb..c4949e31db9 100644 --- a/src/test/regress/sql/foreign_key.sql +++ b/src/test/regress/sql/foreign_key.sql @@ -1483,9 +1483,9 @@ drop schema fkpart0, fkpart1, fkpart2, fkpart3 cascade; CREATE SCHEMA fkpart3; SET search_path TO fkpart3; -CREATE TABLE pk (a int PRIMARY KEY) PARTITION BY RANGE (a); +CREATE TABLE pk (a int PRIMARY KEY, d int) PARTITION BY RANGE (a); CREATE TABLE pk1 PARTITION OF pk FOR VALUES FROM (0) TO (1000); -CREATE TABLE pk2 (b int, a int); +CREATE TABLE pk2 (b int, a int, d int); ALTER TABLE pk2 DROP COLUMN b; ALTER TABLE pk2 ALTER a SET NOT NULL; ALTER TABLE pk ATTACH PARTITION pk2 FOR VALUES FROM (1000) TO (2000); @@ -1501,7 +1501,7 @@ CREATE TABLE pk3 PARTITION OF pk FOR VALUES FROM (2000) TO (3000); CREATE TABLE pk4 (LIKE pk); ALTER TABLE pk ATTACH PARTITION pk4 FOR VALUES FROM (3000) TO (4000); -CREATE TABLE pk5 (c int, b int, a int NOT NULL) PARTITION BY RANGE (a); +CREATE TABLE pk5 (c int, b int, a int NOT NULL, d int) PARTITION BY RANGE (a); ALTER TABLE pk5 DROP COLUMN b, DROP COLUMN c; CREATE TABLE pk51 PARTITION OF pk5 FOR VALUES FROM (4000) TO (4500); CREATE TABLE pk52 PARTITION OF pk5 FOR VALUES FROM (4500) TO (5000); @@ -1517,7 +1517,7 @@ INSERT into fk VALUES (3000); INSERT into fk VALUES (4000); INSERT into fk VALUES (4500); -- insert into the referenced table, now they should work -INSERT into pk VALUES (1), (1000), (2000), (3000), (4000), (4500); +INSERT into pk(a) VALUES (1), (1000), (2000), (3000), (4000), (4500); INSERT into fk VALUES (1), (1000), (2000), (3000), (4000), (4500); -- should fail: referencing value present -- 2.18.0