Re: MAP syntax for arrays - Mailing list pgsql-hackers

From Ildar Musin
Subject Re: MAP syntax for arrays
Date
Msg-id badceb4a-9f37-b243-8355-ae281a7ff1ac@postgrespro.ru
Whole thread Raw
In response to Re: MAP syntax for arrays  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: MAP syntax for arrays  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-hackers

On 08.05.2018 17:15, Peter Eisentraut wrote:
> On 5/8/18 09:19, Chapman Flack wrote:
>> On 05/08/2018 08:57 AM, Ildar Musin wrote:
>>>
>>> select map (pow(2, x) - 1 for x in array[1,2,3,4,5]);
>>
>> I wonder how efficient an implementation would be possible
>> strictly as a function, without grammar changes?
>
> Yeah, you can pass a function to another function (using regprocedure
> or just oid), so this should be possible entirely in user space.
>

The problem with this approach is that extension should either have
single map() function with input and output type of anyarray which
cannot be used when user needs to map int[] to text[] for example. Or
the other way there should be a set of map functions for different
intput/output types.

Another thing is that this approach is not as versatile since user need
to create a function before running map, while with the proposed patch
they could run arbitrary expression over the array directly.

-- 
Ildar Musin
i.musin@postgrespro.ru


pgsql-hackers by date:

Previous
From: Paul Howells
Date:
Subject: SQL:2011 Valid-Time Support
Next
From: Tom Lane
Date:
Subject: Re: Cast jsonb to numeric, int, float, bool