Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem. - Mailing list pgsql-bugs

From Srinath Reddy Sadipiralla
Subject Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.
Date
Msg-id CAFC+b6oVFELdux6b71LSs=_SJHT-O4MODV40VDy3aOYVR3YkQg@mail.gmail.com
Whole thread Raw
In response to Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.  (Álvaro Herrera <alvherre@kurilemu.de>)
Responses Re: Re: Re: BUG #19351: in pg18.1,when not null exists in the table , and add constraint problem.
List pgsql-bugs
Hi Álvaro

On Mon, Jan 26, 2026 at 8:03 PM Álvaro Herrera <alvherre@kurilemu.de> wrote:


> I think we can fix this by throwing an error only if this constraint
> was added directly to the table and not through
> inheritance/propagation from the parent, we can do this using the
> "is_local" flag, i have checked and all tests passed.

Hmm, I'm not opposed to this; does it change any other behavior?  I
think it's important to see whether there are other corner cases that
would react to this behavior change.  For example, what would happen if
two existing parents have a not-null constraint on the same column?  Is
there a change for combined LIKE and regular inheritance?  I think we
should have reasonable reactions to each of those scenarios:

create table parent (a int not null);
create table parent2 (a int not null);

create table child1 () inherits (parent, parent2);
create table child2 () inherits (parent2, parent);
create table child3 (not null a) inherits (parent2, parent);

create table child4 (like parent) inherits (parent2);
-- and so on as your imagination allows

as you have suggested i have looked whether it effects the other behaviour
,during table creation with not null constraints i observed that flow doesn't
touch the AdjustNotNullInheritance where we added the error message,
When running CREATE TABLE, the standard NOT NULL merging logic is
handled by DefineRelation -> AddRelationNotNullConstraints. This function
explicitly handles the "Constraint Selection" logic (prioritizing the Child's
constraint if present, otherwise defaulting to the 1st parent's constraint),
please correct me if I totally understood your concerns wrong here.
 
Would you be able to send a patch based on this idea and what I sent
earlier? 

 I've attached the updated patch.


--
Thanks,
Srinath Reddy Sadipiralla
EDB: https://www.enterprisedb.com/
Attachment

pgsql-bugs by date:

Previous
From: Álvaro Herrera
Date:
Subject: Re: basic_archive lost archive_directory
Next
From: Chris Hanks
Date:
Subject: Function not found while creating partial index