Re: not null constraints, again - Mailing list pgsql-hackers

From Tender Wang
Subject Re: not null constraints, again
Date
Msg-id CAHewXNkNKJKBic7WXYP-k9zb5d25Q1dSo+BCjGbpBXPvYgYNJQ@mail.gmail.com
Whole thread Raw
In response to Re: not null constraints, again  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
List pgsql-hackers


Alvaro Herrera <alvherre@alvh.no-ip.org> 于2024年9月21日周六 05:15写道:
On 2024-Sep-20, Alvaro Herrera wrote:

> Yeah, there's a bunch of conflicts in current master.  I rebased
> yesterday but I'm still composing the email for v4.  Coming soon.

Okay, so here is v4 with these problems fixed, including correct
propagation of constraint names to children tables, which I had
inadvertently broken earlier.  This one does pass the pg_upgrade tests
and as far as I can see pg_dump does all the correct things also.  I
cleaned up the tests to remove everything that's unneeded, redundant, or
testing behavior that no longer exists.

I changed the behavior of ALTER TABLE ONLY <parent> ADD PRIMARY KEY, so
that it throws error in case a child does not have a NOT NULL constraint
on one of the columns, rather than silently creating such a constraint.
(This is how `master` currently behaves).  I think this is better
behavior, because it lets the user decide whether they want to scan the
table to create that constraint or not.  It's a bit crude at present,
because (1) a child could have a NO INHERIT constraint and have further
children, which would foil the check (I think changing
find_inheritance_children to find_all_inheritors would be sufficient to
fix this, but that's only needed in legacy inheritance not
partitioning); (2) the error message doesn't have an errcode, and the
wording might need work.

The indexing test case in regress failed with v4 patch.
alter table only idxpart add primary key (a);  -- fail, no not-null constraint
-ERROR:  column a of table idxpart0 is not marked not null
+ERROR:  column "a" of table "idxpart0" is not marked NOT NULL

It seemed the error message forgot to change.

--
Thanks,
Tender Wang

pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: Add memory/disk usage for WindowAgg nodes in EXPLAIN
Next
From: Jakub Wartak
Date:
Subject: Re: Configurable FP_LOCK_SLOTS_PER_BACKEND