Re: Proposal: generate_iterator functions
От | Pavel Stehule |
---|---|
Тема | Re: Proposal: generate_iterator functions |
Дата | |
Msg-id | 162867790710180545m1d812dd8tf7d966fd7904c54@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Proposal: generate_iterator functions ("Merlin Moncure" <mmoncure@gmail.com>) |
Список | pgsql-hackers |
2007/10/18, Merlin Moncure <mmoncure@gmail.com>: > On 10/18/07, Pavel Stehule <pavel.stehule@gmail.com> wrote: > > this function can help with array's iteration. > > > > create function generate_iterator(anyarray) > > returns setof integer > > as $$ > > select i > > from generate_series(array_lower($1,1), > > array_upper($1,1)) g(i) > > $$ language sql; > > There was a very similar proposal a little while back (google: > array_to_set). I think I like those names better since you are > returning a set, not an iterator :-). Also, this should be internal > as you suggest (there is an undocumented builtin that already does > this, _pg_expandarray). > > merlin > one sample: create or replace function array_unpack2(anyarray) returns setof anyelement as $$ select $1[i][j] from generate_iterator($1,1) i, generate_iterator($1,2) j$$ language sql; postgres=# select array_unpack2(ARRAY[[10,11,12],[13,14,15]]);array_unpack2 --------------- 10 11 12 13 14 15 (6 rows)
В списке pgsql-hackers по дате отправления: