Обсуждение: BUG #1433: domain check constraint not checked when adding new column

Поиск
Список
Период
Сортировка

BUG #1433: domain check constraint not checked when adding new column

От
"craig perras"
Дата:
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

Re: BUG #1433: domain check constraint not checked when adding new column

От
Tom Lane
Дата:
"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

Re: BUG #1433: domain check constraint not checked when adding new column

От
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