2015-07-22 10:37 GMT+02:00 Heikki Linnakangas <hlinn...@iki.fi>: > On 07/11/2015 12:19 AM, Pavel Stehule wrote: > >> 2015-07-10 18:43 GMT+02:00 Tom Lane <t...@sss.pgh.pa.us>: >> >> An example of what would presumably happen if we adopted this sort of >>> rule >>> (I've not checked whether the patch as written does this, but it would >>> logically follow) is that appending a float to an integer array would >>> cause the whole array to be silently promoted to float, with attendant >>> possible loss of precision for existing array elements. >>> >> >> it is based on select_common_type() - so it is use only available implicit >> casts. >> > > Without patch: > > postgres=# select pg_typeof(array_append('{1,2,3}'::int[], 1.2::float)); > ERROR: function array_append(integer[], double precision) does not exist > > With patch: > > postgres=# select pg_typeof(array_append('{1,2,3}'::int[], 1.2::float)); > pg_typeof > -------------------- > double precision[] > (1 row) > > > Yeah, I agree with Tom that we don't want that change in behaviour. I'll > mark this as rejected. >
ok. I accept it - it introduce incompatible changes. Still I am sure, so this behave is some what users expect, but it should not be introduced this way. Any ideas how this issues can be solved? Regards Pavel > - Heikki > >