Am Dienstag, 6. November 2007 schrieb Peter Eisentraut:
> I noticed this problem in 8.2 and 8.3:
>
> pei=# select mod( trunc( 1 ), 2 );
> ERROR: 42883: function mod(double precision, integer) does not exist
> LINE 1: select mod( trunc( 1 ), 2 );
> ^
>
> It apparently casts the 1 to double precision to pick the variant
> trunc(dp)=>dp instead of trunc(numeric)=>numeric. I was under the
> impression that we didn't want to cast integers to float types implicitly
> because this loses information.
Well, duh, of course we can't disallow casting integer to float. But can we
make it prefer numeric as a target if available?
--
Peter Eisentraut
http://developer.postgresql.org/~petere/