Re: BUG #3037: strange behave of CHECK constraint - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #3037: strange behave of CHECK constraint
Date
Msg-id 11475.1172206448@sss.pgh.pa.us
Whole thread Raw
In response to BUG #3037: strange behave of CHECK constraint  ("Pavel Stehule" <pavel.stehule@hotmail.com>)
Responses Re: BUG #3037: strange behave of CHECK constraint  ("Pavel Stehule" <pavel.stehule@hotmail.com>)
List pgsql-bugs
"Pavel Stehule" <pavel.stehule@hotmail.com> writes:
> root=# create table products(
>   barcode char(13) NOT NULL
>   check (barcode NOT similar to '%[^0-9]%')
> );

> root=# insert into products values('22');
> ERROR:  new row for relation "products" violates check constraint
> "products_barcode_check"

> root=# select '22'  NOT similar to '%[^0-9]%';
>  ?column?
> ----------
>  t

That isn't a counterexample, because you forgot about the trailing
spaces, which can match [^0-9].

regression=#  select '22'  NOT similar to '%[^0-9]%';
 ?column?
----------
 t
(1 row)

regression=#  select '22'::char(13)  NOT similar to '%[^0-9]%';
 ?column?
----------
 f
(1 row)


            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #3040: Domain type handling change in 8.2.2 breaks declarations
Next
From: Tom Lane
Date:
Subject: Re: BUG #3054: getopt_long () misbehaviour