From 9344a0f5215c2745d875422b66120599878cfda1 Mon Sep 17 00:00:00 2001 From: Tender Wang Date: Thu, 18 Jul 2024 10:12:18 +0800 Subject: [PATCH v3 2/2] Add test case. --- src/backend/commands/tablecmds.c | 2 +- src/test/regress/expected/foreign_key.out | 19 +++++++++++++++++++ src/test/regress/sql/foreign_key.sql | 20 ++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index d5c6da04fb..2bdd63f0b6 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -19214,7 +19214,7 @@ DetachPartitionFinalize(Relation rel, Relation partRel, bool concurrent, if (!HeapTupleIsValid(parentConTup)) elog(ERROR, "cache lookup failed for constraint %u", conform->conparentid); - parentConForm = (Form_pg_constraint)GETSTRUCT(parentConTup); + parentConForm = (Form_pg_constraint) GETSTRUCT(parentConTup); if (parentConForm->confrelid != conform->confrelid && parentConForm->conrelid == conform->conrelid) { diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out index 46764bd9e3..e36ff9deb3 100644 --- a/src/test/regress/expected/foreign_key.out +++ b/src/test/regress/expected/foreign_key.out @@ -2917,3 +2917,22 @@ DETAIL: drop cascades to table fkpart11.pk drop cascades to table fkpart11.fk_parted drop cascades to table fkpart11.fk_another drop cascades to function fkpart11.print_row() +CREATE TABLE fk_p ( id bigint PRIMARY KEY ) PARTITION BY list (id); +CREATE TABLE fk_p_1 PARTITION OF fk_p FOR VALUES IN (1); +CREATE TABLE fk_r_1 ( + id bigint PRIMARY KEY, + p_id bigint NOT NULL, + FOREIGN KEY (p_id) REFERENCES fk_p (id) +); +CREATE TABLE fk_r ( + id bigint PRIMARY KEY, + p_id bigint NOT NULL, + FOREIGN KEY (p_id) REFERENCES fk_p (id) +) PARTITION BY list (id); +ALTER TABLE fk_r ATTACH PARTITION fk_r_1 FOR VALUES IN (1); +ALTER TABLE fk_r DETACH PARTITION fk_r_1; +DROP TABLE fk_p CASCADE; +NOTICE: drop cascades to 2 other objects +DETAIL: drop cascades to constraint fk_r_1_p_id_fkey on table fk_r_1 +drop cascades to constraint fk_r_p_id_fkey on table fk_r +DROP TABLE fk_r CASCADE; diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql index f5e0938999..d38b10613a 100644 --- a/src/test/regress/sql/foreign_key.sql +++ b/src/test/regress/sql/foreign_key.sql @@ -2069,3 +2069,23 @@ UPDATE fkpart11.pk SET a = 3 WHERE a = 4; UPDATE fkpart11.pk SET a = 1 WHERE a = 2; DROP SCHEMA fkpart11 CASCADE; + +CREATE TABLE fk_p ( id bigint PRIMARY KEY ) PARTITION BY list (id); +CREATE TABLE fk_p_1 PARTITION OF fk_p FOR VALUES IN (1); + +CREATE TABLE fk_r_1 ( + id bigint PRIMARY KEY, + p_id bigint NOT NULL, + FOREIGN KEY (p_id) REFERENCES fk_p (id) +); + +CREATE TABLE fk_r ( + id bigint PRIMARY KEY, + p_id bigint NOT NULL, + FOREIGN KEY (p_id) REFERENCES fk_p (id) +) PARTITION BY list (id); + +ALTER TABLE fk_r ATTACH PARTITION fk_r_1 FOR VALUES IN (1); +ALTER TABLE fk_r DETACH PARTITION fk_r_1; +DROP TABLE fk_p CASCADE; +DROP TABLE fk_r CASCADE; -- 2.34.1