Re: unnest on multi-dimensional arrays

Поиск
Список
Период
Сортировка
От Glyn Astill
Тема Re: unnest on multi-dimensional arrays
Дата
Msg-id 1385725050.72767.YahooMailNeo@web133201.mail.ir2.yahoo.com
обсуждение исходный текст
Ответ на Re: unnest on multi-dimensional arrays  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-general
> From: Pavel Stehule <pavel.stehule@gmail.com>

>To: bricklen <bricklen@gmail.com>
>Cc: "pgsql-general@postgresql.org" <pgsql-general@postgresql.org>
>Sent: Thursday, 28 November 2013, 16:03
>Subject: Re: [GENERAL] unnest on multi-dimensional arrays
>
>2013/11/28 bricklen <bricklen@gmail.com>
>
>On Wed, Nov 27, 2013 at 11:28 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
>>
>>Hello
>>>
>>>
>>>postgres=# CREATE OR REPLACE FUNCTION public.reduce_dim(anyarray)
>>> RETURNS SETOF anyarray
>>> LANGUAGE plpgsql
>>>AS $function$
>>>DECLARE s $1%type;
>>>BEGIN
>>>  FOREACH s SLICE 1  IN ARRAY $1 LOOP
>>>      RETURN NEXT s;
>>>  END LOOP;
>>>RETURN;
>>>END;
>>>$function$;
>>>CREATE FUNCTION
>>>
>>>postgres=# select reduce_dim(array[array[1, 2], array[2, 3]]);
>>> reduce_dim
>>>------------
>>> {1,2}
>>> {2,3}
>>>(2 rows)
>>>
>>
>>Hi Pavel,
>>
>>
>>I hope you don't mind, I took the liberty of adding your nifty function to the Postgresql Wiki at
>>
>>https://wiki.postgresql.org/wiki/Unnest_multidimensional_array
>>
>>
>>Feel free to edit directly or suggest any changes to it.
>>
>>
>
>+1
>
>
>Pavel
>
> 
>
>>
>>Cheers,
>>
>>Bricklen
>>
>
>

In pre 9.1 I use the following:

CREATE OR REPLACE FUNCTION public.part_unnest(anyarray)
RETURNS SETOF anyarray
AS $BODY$
BEGIN
    RETURN QUERY
    SELECT (SELECT array_agg($1[i][i2])
        FROM generate_series(array_lower($1,2), array_upper($1,2)) i2)
    FROM generate_series(array_lower($1,1), array_upper($1,1)) i;
END;
$BODY$
LANGUAGE plpgsql IMMUTABLE;

Not sure if anyone has a cleaner / quicker example.



В списке pgsql-general по дате отправления:

Предыдущее
От: Tobadao
Дата:
Сообщение: Error pg_standby 'pg_standby' is not recognized as an internal or external command!!
Следующее
От: Albe Laurenz
Дата:
Сообщение: Re: Error pg_standby 'pg_standby' is not recognized as an internal or external command!!