Re: Use PageIndexTupleOverwrite() within nbtsort.c

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: Use PageIndexTupleOverwrite() within nbtsort.c
Дата
Msg-id CAH2-Wz=HUfMNK5adE9UJnN2-Fh7_5O76zG_DL6wKkiT-05_jEg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Use PageIndexTupleOverwrite() within nbtsort.c  (Anastasia Lubennikova <a.lubennikova@postgrespro.ru>)
Список pgsql-hackers
On Tue, Aug 6, 2019 at 8:30 AM Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:
> Should we also update similar code in _bt_mark_page_halfdead()?
> I attached a new version of the patch with this change.

Pushed.

At first I thought that there might be a problem with doing the same
thing within _bt_mark_page_halfdead(), because we still won't use
PageIndexTupleOverwrite() in the corresponding recovery routine -- in
theory, that could break WAL consistency checking because the redo
routine works by reconstructing a half-deleted leaf page from scratch,
resulting in a logically equivalent though physically different page
(even after masking within btree_mask()). However, I eventually
decided that you had it right. Your _bt_mark_page_halfdead() change is
clearer overall and doesn't break WAL consistency checking in
practice, for reasons that are no less obvious than before.

Thanks!
-- 
Peter Geoghegan



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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: Fix runtime errors from -fsanitize=undefined
Следующее
От: Dmitry Igrishin
Дата:
Сообщение: Re: Small patch to fix build on Windows