I wrote:
> which are indeed different (might be worth looking into why)

Oh: the reason they're different is that these expressions are not
actually the same thing.  Minus binds less tightly than typecast.
You get consistent results if you input equivalent expressions:

regression=# select cast(-1 as numeric(20,4));
 numeric 
---------
 -1.0000
(1 row)

regression=# select (-1)::numeric(20,4);
 numeric 
---------
 -1.0000
(1 row)

regression=# select - cast(1 as numeric(20,4));
 ?column? 
----------
  -1.0000
(1 row)

regression=# select - 1::numeric(20,4);
 ?column? 
----------
  -1.0000
(1 row)

What we're actually seeing here is that the code to guess a default
column name doesn't descend through a unary minus operator, it just
punts upon finding an Op node.

                        regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to