Thread: pgsql: Sanity-check that a page zeroed by redo routine is marked with W
pgsql: Sanity-check that a page zeroed by redo routine is marked with W
From
Heikki Linnakangas
Date:
Sanity-check that a page zeroed by redo routine is marked with WILL_INIT. There was already a sanity-check in the other direction: if a page was marked with WILL_INIT, it had to be initialized by the redo routine. It's not strictly necessary for correctness that a page is marked with WILL_INIT if it's going to be initialized at redo, but it's a missed optimization if nothing else. Fix a few instances of this issue in SP-GiST, where a block in WAL record was not marked with WILL_INIT, but was in fact always initialized at redo. We were creating a full-page image of the page unnecessarily in those cases. Backpatch to 9.5, where the new WILL_INIT flag was added. Branch ------ REL9_5_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/e015c3e51f76a05cc026c8323c51a373172adaa3 Modified Files -------------- src/backend/access/spgist/spgdoinsert.c | 31 +++++++++++++++++++++++++------ src/backend/access/transam/xlogutils.c | 19 +++++++++++++------ 2 files changed, 38 insertions(+), 12 deletions(-)