Re: partitioned tables referenced by FKs

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Corey Huinker <corey.huinker@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2018-11-05T18:14:29Z
Lists: pgsql-hackers
On 2018-Nov-05, Corey Huinker wrote:

> This is an important and much needed feature!

I agree :-)

> 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?

One of the goals when implementing trigger transition tables was to
supplant the current per-row implementation of RI triggers with
per-statement.  I haven't done that, but AFAIK it remains possible :-)

Changing that is definitely not a goal of this patch.

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

Without an implementation, I can't say, but if I had to guess, I would
assume so.  Or maybe there are clever optimizations for that particular
case.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Support foreign keys that reference partitioned tables

  2. Fix partitioned index creation bug with dropped columns

  3. Improve psql's \d display of foreign key constraints

  4. Fix dependency recording bug for partitioned PKs

  5. Add index_get_partition convenience function

  6. Restore RI trigger sanity check

  7. Foreign keys on partitioned tables