From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Jehan-Guillaume de Rorthais <jgdr(at)dalibo(dot)com> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Another FK violation when referencing a multi-level partitioned table |
Date: | 2020-02-07 21:30:51 |
Message-ID: | 20200207213051.GA32185@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On 2020-Feb-06, Jehan-Guillaume de Rorthais wrote:
Hello,
> When working on the patch to fix another FK violation [1], I found that FK
> constraints were not properly cloned to partition not directly hooked to the
> root table.
Uh.
> Surprisingly, the comment explains how this should be done in two steps, but
> the code corrupted the first step by skipping inherited constraints and lacks
> the second step:
>
> * [...]to avoid duplicates. So do it in two
> * steps: first construct the list of constraints to clone, then go over
> * that list cloning those whose parents are not in the list. (We must
> * not rely on the parent being seen first, since the catalog scan could
> * return children first.)
> */
Strange that this escaped testing previously.
> Please, find in attachment a proposal patch to fix this FK violation.
You fix looks correct to me, so pushed. I took a minute to apply some
minor corrections to the comments, too.
Thanks for reporting!
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2020-02-07 21:36:50 | BUG #16250: As the owner of a database, I can't CREATE EXTENSION postgis; |
Previous Message | 0010203112132233 | 2020-02-07 20:26:12 | Re: BUG #16249: Partition pruning blocks on exclusively locked table partition |