v3-0002-Add-test-case.patch
application/octet-stream
Filename: v3-0002-Add-test-case.patch
Type: application/octet-stream
Part: 1
Patch
Format: format-patch
Series: patch v3-0002
Subject: Add test case.
| File | + | − |
|---|---|---|
| src/backend/commands/tablecmds.c | 1 | 1 |
| src/test/regress/expected/foreign_key.out | 19 | 0 |
| src/test/regress/sql/foreign_key.sql | 20 | 0 |
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