![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
One way or the other, I think either allowing the inherited constraints to be dropped, or the inability of pg_dump to correctly dump the resulting schema, should be considered a bug rather than a lacking feature, as the current situation results in problematical restores. Is there a "known bugs" list? |
#2
| |||
| |||
|
|
Chris Dunlop <chris (AT) onthe (DOT) net.au> writes: E.g. using the script below, the 'bar.f1' column in the 'new' database ends up with a 'not null' constraint that isn't present in the 'orig' database. create table foo (f1 integer not null); create table bar () inherits(foo); alter table bar alter column f1 drop not null; The general consensus is that the above should be illegal, ie, the ALTER should have been rejected. Otherwise you would have a situation where a "SELECT FROM foo" could return nulls, violating the very clear contract of that table. We have not got around to enforcing this yet, but it's on the TODO. I don't see it as a pg_dump bug that it's unable to reproduce an invalid situation. |
#3
| |||
| |||
|
|
Chris Dunlop <chris (AT) onthe (DOT) net.au> writes: One way or the other, I think either allowing the inherited constraints to be dropped, or the inability of pg_dump to correctly dump the resulting schema, should be considered a bug rather than a lacking feature, as the current situation results in problematical restores. Is there a "known bugs" list? I agree that allowing inherited constraints to be dropped is a bug. We don't really have a "known bugs" list other than the TODO list, which presently includes o %Disallow dropping of an inherited constraint o %Prevent child tables from altering or dropping constraints like CHECK that were inherited from the parent table (Which looks a bit redundant to me, but that's what Bruce has listed.) |
![]() |
| Thread Tools | |
| Display Modes | |
| |