Re: unnest on multi-dimensional arrays

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: unnest on multi-dimensional arrays
Дата
Msg-id CAFj8pRD3DrqCa68NjHUcC8=yT1=7XvtYkxUMYFuuDuboixDcjw@mail.gmail.com
обсуждение исходный текст
Ответ на unnest on multi-dimensional arrays  (Zev Benjamin <zev-pgsql@strangersgate.com>)
Ответы Re: unnest on multi-dimensional arrays  (bricklen <bricklen@gmail.com>)
Re: unnest on multi-dimensional arrays  (Zev Benjamin <zev-pgsql@strangersgate.com>)
Список pgsql-general
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)

Regards

Pavel Stehule

2013/11/28 Zev Benjamin <zev-pgsql@strangersgate.com>
It appears that unnest, when called on a multi-dimensional array, effectively flattens the array first.  For example:

=> select * from unnest(array[array[1, 2], array[2, 3]]);
 unnest
--------
      1
      2
      2
      3
(4 rows)

while I would have expect something like the following:

=> select * from unnest(array[array[1, 2], array[2, 3]]);
 unnest
--------
   {1, 2}
   {2, 3}
(2 rows)

Is there any way to get the latter behavior?


Zev


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

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

Предыдущее
От: Zev Benjamin
Дата:
Сообщение: unnest on multi-dimensional arrays
Следующее
От: David Johnston
Дата:
Сообщение: Re: unnest on multi-dimensional arrays