From 9344a0f5215c2745d875422b66120599878cfda1 Mon Sep 17 00:00:00 2001
From: Tender Wang <tndrwang@gmail.com>
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

