As I mentioned, it is more then just a headers issue it is a type issue. I have a view that has a column of type numeric(20,4) If I replace that column with -1::numeric(20,4) or - (1::numeric(20,4)) the type that goes to the view is numeric without any scale or precision and then I get an error that I cannot change the column type. It seems to be a negative number issue because if I use a positive number or null it gives me the numeric(20,4) it is only for negative that it gives me the numeric without scale or precision. Sim Tom Lane wrote: > 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@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general