Обсуждение: Strange ADD CHECK error message
I have noticed a strange error message when adding check constraints. Basically the ADD CHECK below is failing because the field it is trying to force to be NOT NULL already has NULL values in it. However, the error message it produces is quite cryptic and it took me a while to figure out what was going on. Is it still like this in 7.2b2, and should it be changed? Chris test=# select version(); version --------------------------------------------------------------PostgreSQL 7.1.3 on i386--freebsd4.2, compiled by GCC 2.95.2 (1 row) test=# create table test (foo char(1) check (foo in ('M', 'V'))); CREATE test=# insert into test values('M'); INSERT 2823326 1 test=# alter table test add column bar varchar(255); ALTER test=# alter table test add check (bar is not null); ERROR: AlterTableAddConstraint: rejected due to CHECK constraint <unnamed>
On Thu, 15 Nov 2001, Christopher Kings-Lynne wrote: > I have noticed a strange error message when adding check constraints. > Basically the ADD CHECK below is failing because the field it is trying to > force to be NOT NULL already has NULL values in it. However, the error > message it produces is quite cryptic and it took me a while to figure out > what was going on. > > Is it still like this in 7.2b2, and should it be changed? Pretty sure and possibly. In general, the message is currently based on the same template as the error you get if you were to fail it later. I don't have a good phrase to replace it with, but a more descriptive message would probably be good.