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

From Heikki Linnakangas
Subject Re: MAP syntax for arrays
Date
Msg-id 14ac5bbe-e9fb-2ce4-2d6d-698f8da29449@iki.fi
Whole thread Raw
In response to Re: MAP syntax for arrays  (Ildar Musin <i.musin@postgrespro.ru>)
List pgsql-hackers
On 08/05/18 18:11, Ildar Musin wrote:
> 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.

The consensus on this seems to be that we don't want this. Yeah, it's a 
handy syntax, but it's not that much better than using a subselect or a 
writing a user-defined function. And there's risk of future conflicts 
with the SQL standard. I'll mark this as "Rejected" in the commitfest.

- Heikki


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: [HACKERS] possible self-deadlock window after badProcessStartupPacket
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: documentation about explicit locking