Re: BUG #18156: Self-referential foreign key in partitioned table not enforced on deletes

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: fastcat@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2024-07-12T12:36:55Z
Lists: pgsql-bugs
Hello, I hadn't noticed this report before; I'll have a look at it
soon.

On 2023-Oct-13, PG Bug reporting form wrote:

> When a partitioned table has a self-referential foreign key, I'm finding
> that the key is not enforced during deletes from the table.

Hmm, yeah, I broke this in this commit

Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Branch: master Release: REL_16_BR [614a406b4] 2022-10-07 19:37:48 +0200
Branch: REL_15_STABLE Release: REL_15_0 [6083132ab] 2022-10-07 19:37:48 +0200
Branch: REL_14_STABLE Release: REL_14_6 [483d26930] 2022-10-07 19:37:48 +0200
Branch: REL_13_STABLE Release: REL_13_9 [7d520e68e] 2022-10-07 19:37:48 +0200
Branch: REL_12_STABLE Release: REL_12_13 [669803af0] 2022-10-07 19:37:48 +0200

    Fix self-referencing foreign keys with partitioned tables

Clearly this area needs a lot more work.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"No nos atrevemos a muchas cosas porque son difíciles,
pero son difíciles porque no nos atrevemos a hacerlas" (Séneca)



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Handle self-referencing FKs correctly in partitioned tables

  2. Restructure foreign key handling code for ATTACH/DETACH

  3. Fix self-referencing foreign keys with partitioned tables