GIN code managing entry insertion not able to differentiate fresh and old indexes

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема GIN code managing entry insertion not able to differentiate fresh and old indexes
Дата
Msg-id CAB7nPqSc4VQ9mHKqm_YvAfcTEhO-iUY8SKbXYdnMGnAi1XnPaw@mail.gmail.com
обсуждение исходный текст
Ответы Re: GIN code managing entry insertion not able to differentiate fresh and old indexes  (Michael Paquier <michael.paquier@gmail.com>)
Re: GIN code managing entry insertion not able to differentiate fresh and old indexes  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
Hi all,

While playing with the GIN code for an upcoming patch, I noticed that
when inserting a new entry in a new index, this code path is not able
to make the difference if the index is in a build state or not.
Basically, when entering in ginEntryInsert@gininsert.c GinBtree built
via ginPrepareEntryScan does not have its flag isBuild set up
properly. I think that it should be set as follows to let this code
path be aware that index is in build state:
btree.isBuild = (buildStats != NULL);

Note that the entry insertion code does nothing with isBuild yet, so
it does not really impact back-branches. However, if in the future we
fix a bug in this area and need to make distinction between a fresh
index and an old one well there will be problems. For those reasons,
this correctness fix should be perhaps master-only for now (perhaps
even 9.4 stuff as well).

Patch is attached.

Regards,
--
Michael

Вложения

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

Предыдущее
От: Abhijit Menon-Sen
Дата:
Сообщение: Re: What exactly is our CRC algorithm?
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: GIN code managing entry insertion not able to differentiate fresh and old indexes