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