On Wed, Jul 26, 2017 at 4:50 PM, Michael Paquier <michael.paqu...@gmail.com> wrote: > On Wed, Jul 26, 2017 at 4:02 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: >> Not sure what's involved there code-wise, though, nor whether we'd want >> to back-patch. > > I'll try to look at the code around that to come up with a clear > conclusion in the next couple of days, likely more as that's a > vacation period. Surely anything invasive would not be backpatched.
So I think that the attached patch is able to do the legwork. While looking at the code, I have bumped into index_check_primary_key() that discarded the case of sending SET NOT NULL to child tables, as introduced by 88452d5b. But that's clearly an oversight IMO, and the comment is wrong to begin with because SET NOT NULL is spread to child tables. Using is_alter_table instead of a plain true in index_check_primary_key() for the call of AlterTableInternal() is defensive, but I don't think that we want to impact any modules relying on this API, so recursing only when ALTER TABLE is used is the safest course of action to me. With this logic, we rely as well on the fact that ADD PRIMARY KEY is not recursive in tablecmds.c. Comments are welcome, I'll park that into the CF app so as it does not get lost in the void. -- Michael
alttab-setnotnull-v1.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers