Thread: strange behaviour of parser - numeric domain doesn't work phantom

strange behaviour of parser - numeric domain doesn't work phantom

From
"Pavel Stehule"
Date:
Hello

I am testing:

postgres=# create domain nb int check(value > 10);
CREATE DOMAIN
postgres=# select 11::nb;nb
----11
(1 row) -- ok

postgres=# select -11::nb;?column?
----------     -11
(1 row) -- ughh

postgres=# select (-11)::nb; -- I understand
ERROR:  value for domain nb violates check constraint "nb_check"

But nobody will write parentheses with alone negative number

Regards
Pavel Stehule

postgres=# select version();                                               version
-------------------------------------------------------------------------------------------------------PostgreSQL
8.3develon i686-pc-linux-gnu, compiled by GCC gcc (GCC)
 
4.1.2 20070502 (Red Hat 4.1.2-12)
(1 row)


Re: strange behaviour of parser - numeric domain doesn't work phantom

From
Tom Lane
Date:
"Pavel Stehule" <pavel.stehule@gmail.com> writes:
> postgres=# select -11::nb;

The operator precedence table at
http://developer.postgresql.org/pgdocs/postgres/sql-syntax-lexical.html#SQL-PRECEDENCE
says perfectly clearly that :: binds more tightly than -.
        regards, tom lane


Re: strange behaviour of parser - numeric domain doesn't work phantom

From
"Pavel Stehule"
Date:
2007/8/13, Tom Lane <tgl@sss.pgh.pa.us>:
> "Pavel Stehule" <pavel.stehule@gmail.com> writes:
> > postgres=# select -11::nb;
>
> The operator precedence table at
> http://developer.postgresql.org/pgdocs/postgres/sql-syntax-lexical.html#SQL-PRECEDENCE
> says perfectly clearly that :: binds more tightly than -.
>
>                         regards, tom lane
>

My mistake. Sorry for noise

regards
Pavel Stehule