BUG #1433: domain check constraint not checked when adding new column
The following bug has been logged online:
Bug reference: 1433
Logged by: craig perras
Email address: craigp98072@yahoo.com
PostgreSQL version: 8.0 release
Operating system: win2000
Description: domain check constraint not checked when adding new
column
Details:
Domain check constraint not checked when adding new column.
repro:
add domain 'string' of base type text with non-null constraint
add column of type 'string' to table with existing rows
works; all rows have new column's value set to null
expected:
error: cannot add column due to non-null constraint in domain 'string'
notes:
could not insert a new row with non-null value for 'string' column (as
expected)
trying to add a column of type text with non-null constraint produces
expected error message
"craig perras" <craigp98072@yahoo.com> writes:
Domain check constraint not checked when adding new column.
Hmm. It does work for cases like
regression=# create domain posint int check (value > 0);
CREATE DOMAIN
regression=# alter table foo add column f5 posint default 0;
ERROR: value for domain posint violates check constraint "posint_check"
I think the issue is that when you don't specify any default, the scan
of the table gets optimized away.
regards, tom lane
"craig perras" <craigp98072@yahoo.com> writes:
add domain 'string' of base type text with non-null constraint
add column of type 'string' to table with existing rows
works; all rows have new column's value set to null
Fixed for 8.0.1.
regards, tom lane