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
>
>

Reply via email to