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

Started by Pavel Stehuleover 18 years ago3 messageshackers
Jump to latest
#1Pavel Stehule
pavel.stehule@gmail.com

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.3devel on i686-pc-linux-gnu, compiled by GCC gcc (GCC)
4.1.2 20070502 (Red Hat 4.1.2-12)
(1 row)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavel Stehule (#1)
Re: strange behaviour of parser - numeric domain doesn't work phantom

"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

#3Pavel Stehule
pavel.stehule@gmail.com
In reply to: Tom Lane (#2)
Re: strange behaviour of parser - numeric domain doesn't work phantom

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