Re: unnest multirange, returned order

Поиск
Список
Период
Сортировка
От Laurenz Albe
Тема Re: unnest multirange, returned order
Дата
Msg-id 2bad53942920d2e501661af4cd49d6644a22b801.camel@cybertec.at
обсуждение исходный текст
Ответ на unnest multirange, returned order  (PG Doc comments form <noreply@postgresql.org>)
Ответы Re: unnest multirange, returned order  (Daniel Fredouille <daniel.fredouille@gmail.com>)
Список pgsql-docs
On Mon, 2023-10-02 at 18:42 +0000, PG Doc comments form wrote:
> Page: https://www.postgresql.org/docs/16/functions-range.html
>
> The doc says:
> * unnest ( anymultirange ) → setof anyrange
> * Expands a multirange into a set of ranges. The ranges are read out in
> storage order (ascending).
>
> What is storage order ?
>
> At first I thought that it was the order in which the different ranges are
> inserted in the internal data structure. However, the following sort of
> shows that it is not:
> ```
> postgres=# select unnest('{[1,4), [8,10)}'::int4multirange + '{[-5,-3)}' -
> '{[2,3)}') ;
>  unnest
> ---------
>  [-5,-3)
>  [1,2)
>  [3,4)
>  [8,10)
> (4 lignes)
> ```
> Whatever I try, it always return in range order instead of "storage order".

I'd say that the storag order is the order in which PostgreSQL stores
multiranges internally:

SELECT '{[100,200),[-100,-50),[-1,2)}'::int4multirange;

        int4multirange
═══════════════════════════════
 {[-100,-50),[-1,2),[100,200)}
(1 row)

Yours,
Laurenz Albe



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

Предыдущее
От: PG Doc comments form
Дата:
Сообщение: unnest multirange, returned order
Следующее
От: PG Doc comments form
Дата:
Сообщение: INT4RANGE Upper bound always includes a higher number