Re: partitioned tables referenced by FKs - Mailing list pgsql-hackers

From Corey Huinker
Subject Re: partitioned tables referenced by FKs
Date
Msg-id CADkLM=dPsRUa+CwrP7kf=12ehnxzLCJxsOn2MJo5_8Kp9ZVAwg@mail.gmail.com
Whole thread Raw
In response to partitioned tables referenced by FKs  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: partitioned tables referenced by FKs
List pgsql-hackers
On Fri, Nov 2, 2018 at 7:42 PM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Here's a patch to allow partitioned tables to be referenced by foreign
keys.  Current state is WIP, but everything should work; see below for
the expected exception.

The design is very simple: have one pg_constraint row for each partition
on each side, each row pointing to the topmost table on the other side;
triggers appear on each leaf partition (and naturally they don't appear
on any intermediate partitioned table).

This is an important and much needed feature!

Based on my extremely naive reading of this code, I have two perhaps equally naive questions:

1. it seems that we will continue to to per-row RI checks for inserts and updates. However, there already exists a bulk check in RI_Initial_Check(). Could we modify this bulk check to do RI checks on a per-statement basis rather than a per-row basis?

2. If #1 is possible, is the overhead of transitions tables too great for the single-row case?

pgsql-hackers by date:

Previous
From: Amit Langote
Date:
Subject: ON COMMIT actions and inheritance
Next
From: Bruce Momjian
Date:
Subject: "Writing" output lines during make