Re: Support NOT VALID / VALIDATE constraint options for named NOT NULL constraints
Rushabh Lathia <rushabh.lathia@gmail.com>
From: Rushabh Lathia <rushabh.lathia@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-03-13T08:37:47Z
Lists: pgsql-hackers
On Wed, Mar 12, 2025 at 11:50 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > On 2025-Mar-12, Rushabh Lathia wrote: > > > Hi Alvaro, > > > > Here are the latest patches, which includes the regression fix. > > Thank you. > > Taking a step back after discussing this with some colleagues, I need to > contradict what I said at the start of this thread. There's a worry > that changing pg_attribute.attnotnull in the way I initially suggested > might not be such a great idea after all. I did a quick search using > codesearch.debian.net for applications reading that column and thinking > about how they would react to this change; I think in the end it's going > to be quite disastrous. We would break a vast number of these apps, and > there are probably countless other apps and frameworks that we would > also break. Everybody would hate us forever. Upgrading to Postgres 18 > would become as bad an experience as the drastic change of implicit > casts to text in 8.3. Nothing else in the intervening 17 years strikes > me as so problematic as this change would be. > > So I think we may need to go back and somehow leave pg_attribute alone, > to avoid breaking the whole world. Maybe it would be sufficient to > change the CompactAttribute->attnotnull to no longer be a boolean, but > the new char representation instead. I'm not sure if this would > actually work. > Thank you for your feedback. I understand that this change could be problematic for existing applications, as attnotnull is a highly generic catalog column. I will revisit the patch, make the necessary adjustments, and submit a revised version accordingly. I appreciate your insights and will try to submit the new patch. Regards, Rushabh Lathia www.EnterpriseDB.com
Commits
-
Allow NOT NULL constraints to be added as NOT VALID
- a379061a22a8 18.0 landed
-
Add missing deparsing of [NO] IDENT to XMLSERIALIZE()
- 984410b92326 18.0 cited
-
backend launchers void * arguments for binary data
- 7202d72787d3 18.0 cited
-
Add pg_constraint rows for not-null constraints
- 14e87ffa5c54 18.0 cited
-
Create the infrastructure for planner support functions.
- 1fb57af92069 12.0 cited
-
Add prokind column, replacing proisagg and proiswindow
- fd1a421fe661 11.0 cited