> End users hate uneccessaries or non sense messages like the following
> when he/she writes a sentence like this:
> 
>         UPDATE my_table SET my_int=my_small;
> 
> and PostgreSQL show him/her this message ?
> ---------------------------------------------------------------------
> WARN: type of my_small does not match target column my_int
> ---------------------------------------------------------------------
> - What message is this ? If PostgreSQL understand that I want to do:
>    UPDATE my_table SET my_int=my_small::int4;
> why it doesn't do that for me?
> 
>          SELECT my_small * my_float FROM my_table;
> ---------------------------------------------------------------------
> NOTICE:there is no operator * for types int2 and float8
> NOTICE:You will either have to retype this query using an
> NOTICE:explicit cast, or you will have to define the operator
> WARN:* for int2 and float8 using CREATE OPERATOR
> ---------------------------------------------------------------------
> 
> - Well, if PostgreSQL know what I want why it doesn't do it for me ?
> I know that conversion is more expensive than warnning but it's more
> friendly. What do you think? ;-)

Yes, this is very annoying. If I do:
  psql=> select my_small * my_float from my_table;

then my_small should be promoted to float automagically.

PostgreSQL should rewrite this as "select my_small::float * my_float from
my_table"
so that numeric expressions always returns the "biggest" type involved.
In most programmig languages, this is done automatically, and should be
done
in PostgreSQL for all calculations.


/* m */


Tue, 24 Feb 1998 14:32:35 +0100
"Mattias Kregert" <matti@algonet.se>
SV: [HACKERS] Re: [BUGS] agregate function sum error