]> granicus.if.org Git - postgresql/commit
Flag index metapages as standard-format in xlog.c calls.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 3 Nov 2017 20:31:32 +0000 (16:31 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 3 Nov 2017 20:31:32 +0000 (16:31 -0400)
commit4c11d2c559e76892156fd08d6a3cf5e1848a017f
tree9cf756daab9e2a911d2c0e432338aba46757d128
parent1b890562b8d1b44bd3ef948aeeb58dd59abd04b7
Flag index metapages as standard-format in xlog.c calls.

btree, hash, and bloom indexes all set up their metapages in standard
format (that is, with pd_lower and pd_upper correctly delimiting the
unused area); but they mostly didn't inform the xlog routines of this.
When calling log_newpage[_buffer], this is bad because it loses the
opportunity to compress unused data out of the WAL record.  When
calling XLogRegisterBuffer, it's not such a performance problem because
all of these call sites also use REGBUF_WILL_INIT, preventing an FPI
image from being written.  But it's still a good idea to provide the
flag when relevant, because that aids WAL consistency checking.

This completes the project of getting all the in-core index AMs to
handle their metapage WAL operations similarly.

Amit Kapila, reviewed by Michael Paquier

Discussion: https://postgr.es/m/0d273805-0e9e-ec1a-cb84-d4da400b8f85@lab.ntt.co.jp
contrib/bloom/blinsert.c
src/backend/access/hash/hashpage.c
src/backend/access/nbtree/nbtinsert.c
src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtree.c
src/backend/access/nbtree/nbtxlog.c