Re: [HACKERS] Surjective functional indexes

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема Re: [HACKERS] Surjective functional indexes
Дата
Msg-id CANP8+jLLZvG+MDhnXsiv4Hxbh4wcOWRkC6Zu=PGg63gOFwuyyw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] Surjective functional indexes  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
Ответы Re: [HACKERS] Surjective functional indexes  (Simon Riggs <simon@2ndquadrant.com>)
Список pgsql-hackers
On 23 March 2018 at 15:39, Konstantin Knizhnik
<k.knizhnik@postgrespro.ru> wrote:
>
>
> On 22.03.2018 23:37, Alvaro Herrera wrote:
>>
>> The rd_projidx (list of each nth element in the index list that is a
>> projection index) thing looks odd.  Wouldn't it make more sense to have
>> a list of index OIDs that are projection indexes?
>>
>
> rd_projidx is not a list, it is Bitmapset. It is just one of many bitmap
> sets in RelationData:
>
>     Bitmapset  *rd_indexattr;    /* identifies columns used in indexes */
>     Bitmapset  *rd_keyattr;        /* cols that can be ref'd by foreign keys
> */
>     Bitmapset  *rd_pkattr;        /* cols included in primary key */
>     Bitmapset  *rd_idattr;        /* included in replica identity index */
>
> Yes, it is possible to construct Oid list of projectional indexes instead of
> having bitmap which marks some indexes in projectional, but I am not sure
> that
> it will be more efficient both from CPU and memory footprint point of view
> (in most indexes bitmap will consists of just one integer). In any case, I
> do not think that it can have some measurable impact on performance or
> memory size:
> number of indexes and especially projectional indexes will very rarely
> exceed 10.

Alvaro's comment seems reasonable to me.

The patch adds both rd_projindexattr and rd_projidx
rd_projindexattr should be a Bitmapset, but rd_projidx looks strange
now he mentions it.

Above that in RelationData we have other structures that are List of
OIDs, so Alvaro's proposal make sense.

That would simplify the code in ProjectionIsNotChanged() by just
looping over the list of projection indexes rather than the list of
indexes

So please could you make the change?

-- 
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: [HACKERS] Surjective functional indexes
Следующее
От: Vladimir Sitnikov
Дата:
Сообщение: max_memory_per_backend GUC to limit backend's memory usage