2015-01-17 7:26 GMT+01:00 Pavel Stehule <pavel.steh...@gmail.com>:

>
> 2015-01-16 22:35 GMT+01:00 Andrew Dunstan <and...@dunslane.net>:
>
>>
>> On 01/16/2015 12:22 PM, Pavel Stehule wrote:
>>
>>>
>>>
>>>         There two possible transformations:
>>>
>>>         row_to_array --> [[key1, value1],[key2, value2], ...]
>>>         row_to_row_array --> [(key1, value1), (key2, value2), ... ]
>>>
>>>
>>>     If we're going to go that route, I think it makes more sense to
>>>     create an actual key/value type (ie:
>>>     http://pgxn.org/dist/pair/doc/pair.html) and return an array of
>>> that.
>>>
>>>
>>> ok
>>>
>>>     <http://BlueTreble.com>
>>>
>>>
>>
>> I think we'd possibly be better off with simply returning a flat array,
>> [key1, value1, ...]
>>
>> Thats's what the hstore(text[]) and json_object(text[]) functions accept,
>> along with the 2D variant, if we want a precedent.
>>
>
> It can be one of supported variant. I should not be one, because we cannot
> to simply iterate over it
>
> Next possibility is teach FOREACH to take key and value in one step.
>

I looked to code and iteration over pair (key, value) is more simple

FOREACH supports target list, but source should be composite array.

ostgres=# do $$
declare a int;
  b int;
begin
  foreach a,b in array ARRAY[(1,2),(3,4)]
  loop
    raise notice 'a = %, b = %', a,b;
  end loop;
end;
$$ language plpgsql;
NOTICE:  a = 1, b = 2
NOTICE:  a = 3, b = 4
DO

Conversion from ARRAY[k1,v1,k2,v2, ... ] is not well consistent with
current design


>
> Regards
>
> Pavel
>
>
>>
>> cheers
>>
>> andrew
>>
>>
>

Reply via email to