Re: ALTER CONSTRAINT on a partitioned FK isn't working
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2020-12-07T23:52:06Z
Lists: pgsql-bugs
On 2020-Dec-07, Alvaro Herrera wrote: > Yeah, this query shows that the tgdeferrable and tginitdeferred columns > ought to be dropped: > > select tgname, tgdeferrable, tginitdeferred from pg_trigger; Sorry, I meant "ought to be updated". But there's more to it than that: the pg_constraint entries themselves are not updated, and that's because ALTER CONSTRAINT does not have recurse at all. So the first thing to do is add an "ATSimpleRecursion()" call for the appropriate case, but even that is not sufficient, as we need to recurse on the referenced side also, not just the referencing side -- and that's a tad more involved. (ATExecAlterConstraint is explicitly not handling the case.)
Commits
-
Have ALTER CONSTRAINT recurse on partitioned tables
- 6f70d7ca1d19 14.0 landed
- abce26c9eb95 12.7 landed
- a25b98d2cf38 11.12 landed
- 923c13520f1b 13.3 landed
-
Fix OID passed to object-alter hook during ALTER CONSTRAINT
- e798d095da3a 14.0 landed
- 91a6b3862fef 13.3 landed
- 72fabd4bfb5a 12.7 landed