"Pavel Stehule" <[EMAIL PROTECTED]> 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)
I see it now. Thank You. It's one trick from Joe Celko and I too late
understand it.
Nice day
Pavel Stehule
_________________________________________________________________
Emotikony a pozadi programu MSN Messenger ozivi vasi konverzaci.
http://messenger.msn.cz/
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match