Re: check contraint allows illegal value? - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: check contraint allows illegal value?
Date
Msg-id 200107201545.f6KFjeE15500@candle.pha.pa.us
Whole thread Raw
In response to check contraint allows illegal value?  (missive@frontiernet.net (Lee Harr))
List pgsql-bugs
>
> Is this a bug?
>
> create table foo( c char(2)
>     check (c in ('09', '10', '11', '12', 'n/a'))
> );
> CREATE
>
> insert into foo values('09');
> INSERT
>
> insert into foo values('10');
> INSERT
>
> insert into foo values('08');
> ExecAppend: rejected due to CHECK constraint foo_c
>
> insert into foo values('n/a');
> ExecAppend: rejected due to CHECK constraint foo_c
>
>
>
> clearly this was a 'whups' on my part, but it would have
> been nice to know that my constraint was bogus at the
> time the table was created.

That is interesting.  You want the check constraint to be a valid value
for the column.  I can see char() having this issue.  Is this something
we should check for all types folks?  Not sure.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-bugs by date:

Previous
From: jozzano
Date:
Subject: BUG(fixed) in CREATE TABLE ADD CONSTRAINT...
Next
From: Bruce Momjian
Date:
Subject: Re: libpgtcl doesn't use UTF encoding of TCL