Re: [BUG] Fix DETACH with FK pointing to a partitioned table fails
Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
From: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Tender Wang <tndrwang@gmail.com>, Junwang Zhao <zhjwpku@gmail.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Alexander
Lakhin <exclusion@gmail.com>, Guillaume Lelarge <guillaume@lelarge.info>,
Michael Paquier <michael@paquier.xyz>
Date: 2024-10-22T14:23:12Z
Lists: pgsql-hackers
On Fri, 18 Oct 2024 16:50:59 +0200 Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > On 2024-Sep-26, Jehan-Guillaume de Rorthais wrote: > > > REL_14_STABLE backport doesn't seem trivial, so I'll wait for some > > feedback, review & decision before going further down in backpatching. > > Hi, thanks for these patches. I have made some edits of my own. In the > end I decided that I quite liked the new structure of the > addFkConstraint() function and friends. Yes, I especially like the fact that addFkRecurseReferencing() and addFkRecurseReferenced() have now the same logic/behavior. > I added a bunch of comments and changed names somewhat. checked. > Also, I think the benefit of the refactoring is > more obvious when all patches are squashed together, so I did that. OK. > For branch 14, I opted to make it delete the constraints on detach. > This isn't ideal but unless somebody wants to spend a lot more time on > this, it seems the best we can do. Leaving broken constraints around > seems worse. Keep that in mind, and move ahead to the next level: self-FK on partitioned table! ;-) https://www.postgresql.org/message-id/flat/20230707175859.17c91538%40karst#0dc7b8afd8b780899021bbb075598250 > […] > > I spent some time going through your test additions and ended up with > your functions in this form: > […] > > However, in the end I think this is a very good technique to verify that > the fix works correctly, but it's excessive to include these results in > the tests forevermore. So I've left them out for now. Maybe we should > reconsider on the older branches? The point here was to make sure futur work/refactoring don't forget/break anything in the catalog representation of FK on partitions. Regards,
Commits
-
Fix some more bugs in foreign keys connecting partitioned tables
- f7d510a38245 16.5 landed
- 936ab6de9595 17.1 landed
- 2d5fe514052a 18.0 landed
- 1b216fceffe3 15.9 landed
-
Restructure foreign key handling code for ATTACH/DETACH
- d20194cead75 13.17 landed
- 5d83bad6b87d 15.9 landed
- 5914a22f6ea5 17.1 landed
- 53af9491a043 18.0 landed
- 46a8c27a7226 14.14 landed
- 2aaf2a28b87e 16.5 landed
-
Create foreign key triggers in partitioned tables too
- f4566345cf40 15.0 cited