Re: range_agg

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема Re: range_agg
Дата
Msg-id CAPpHfduexep-g7f1o1d4yd5sfSoxLdONcZWS+mWEcKEyppDOzQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: range_agg  (Alexander Korotkov <aekorotkov@gmail.com>)
Ответы Re: range_agg  (Alexander Korotkov <aekorotkov@gmail.com>)
Список pgsql-hackers
On Wed, Dec 16, 2020 at 2:21 AM Alexander Korotkov <aekorotkov@gmail.com> wrote:
> I decided to work on this patch myself.  The next revision is attached.
>
> The changes are as follows.
>
> 1. CREATE TYPE ... AS RANGE command now accepts new argument
> multirange_type_name.  If multirange_type_name isn't specified, then
> multirange type name is selected automatically.  pg_dump always
> specifies multirange_type_name (if dumping at least pg14).  Thanks to
> that dumps are always restorable.
> 2. Multiranges now have a new binary format.  After the MultirangeType
> struct, an array of offsets comes, then an array of flags and finally
> bounds themselves.  Offsets points to the bounds of particular range
> within multirange.  Thanks to that particular range could be accessed
> by number without deserialization of the whole multirange.  Offsets
> are stored in compression-friendly format similar to jsonb (actually
> only every 4th of those "offsets" is really offsets, others are
> lengths).
> 3. Most of simple functions working with multirages now don't
> deserialize the whole multirange.  Instead they fetch bounds of
> particular ranges, and that doesn't even require any additional memory
> allocation.
> 4. I've removed ExpandedObject support from the patch.  I don't see
> much point in it assuming all the functions are returning serialized
> multirage anyway.  We can add ExpandedObject support in future if
> needed.
> 5. multirange_contains_element(), multirange_contains_range(),
> multirange_overlaps_range() now use binary search.  Thanks to binary
> format, which doesn't require full deserialization, these functions
> now work with O(log N) complexity.
>
> Comments and documentation still need revision according to these
> changes.  I'm going to continue with this.

The next 27th revision is attached.  It contains minor documentation
and code changes, in particular it should address
commitfest.cputube.org complaints.

------
Regards,
Alexander Korotkov

Вложения

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

Предыдущее
От: Masahiko Sawada
Дата:
Сообщение: Re: Add Information during standby recovery conflicts
Следующее
От: r.zharkov@postgrespro.ru
Дата:
Сообщение: Re: TAP tests aren't using the magic words for Windows file access