Hello,
We seem to have forgotten about this issue. I think this is even more
pressing with the changes to 18 for not-null constraints, though
strictly speaking it's always been a problem. Here's an updated patch.
I simplified the query (no need for a recursive CTE as far as I can
tell) and updated to use the pg_upgrade "task" infrastructure.
I think from 18 on, the problem can no longer be recreated, since
removing the attnotnull bit from a child table is not possible.
I should add some testing too before pushing, of course. I only tested
manually.
I'd like to hear from RMT about getting this in 18. Actually I think we
should consider backporting to all live versions ... thoughts?
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Investigación es lo que hago cuando no sé lo que estoy haciendo"
(Wernher von Braun)