Re: polymorphic types - enforce casting to most common type automatically

From: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: polymorphic types - enforce casting to most common type automatically
Date: 2015-07-22 08:37:29
Message-ID: 55AF5649.9080503@iki.fi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 07/11/2015 12:19 AM, Pavel Stehule wrote:
> 2015-07-10 18:43 GMT+02:00 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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.
- Heikki

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Etsuro Fujita 2015-07-22 10:05:05 Re: fdw_scan_tlist for foreign table scans breaks EPQ testing, doesn't it?
Previous Message Kouhei Kaigai 2015-07-22 08:25:23 Re: Asynchronous execution on FDW