From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Ali Akbar <the(dot)apaan(at)gmail(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org, rmt(at)lists(dot)postgresql(dot)org |
Subject: | Re: [HACKERS] pg_upgrade failed with error - ERROR: column "a" in child table must be marked NOT NULL |
Date: | 2025-07-03 18:53:01 |
Message-ID: | 202507031853.jfbuuompu5to@alvherre.pgsql |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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)
Attachment | Content-Type | Size |
---|---|---|
0001-pg_upgrade-check-for-inconsistent-inherited-not-null.patch | text/x-diff | 4.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2025-07-03 18:54:16 | Re: [PATCH] Fix hostaddr crash during non-blocking cancellation |
Previous Message | Fujii Masao | 2025-07-03 16:26:19 | Re: A assert failure when initdb with track_commit_timestamp=on |