> 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
Thanks for the pointers, will look into this angle also.
Would you be able to send a patch based on this idea and what I sent
earlier?
sure , I will do that.