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 по дате отправления: