Re: unnest multirange, returned order

Поиск
Список
Период
Сортировка
От Daniel Fredouille
Тема Re: unnest multirange, returned order
Дата
Msg-id CAEpV6kX9PJAuQ_=5c7ZxCSASu76hkvGfVvwU6WkHTRXzApknfQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: unnest multirange, returned order  (Laurenz Albe <laurenz.albe@cybertec.at>)
Ответы Re: unnest multirange, returned order  (Laurenz Albe <laurenz.albe@cybertec.at>)
Список pgsql-docs
I'd say that the storag order is the order in which PostgreSQL stores
multiranges internally:

Right, I believe that you are right but then this information is not useful for the developer. 
If storage order is always ascending by range order then let's make it clear, if order cannot be counted upon as it may evolve from postgres version to version, then let's make it clear as well. WDYT ?

Thank you.
Daniel Fredouille

Le mar. 3 oct. 2023 à 09:46, Laurenz Albe <laurenz.albe@cybertec.at> a écrit :
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 по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Corresponding documentation page does not mention about `spread` mode
Следующее
От: Laurenz Albe
Дата:
Сообщение: Re: unnest multirange, returned order