Fix a couple of bugs with wal_log_hints.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 26 Jun 2015 09:38:24 +0000 (12:38 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 26 Jun 2015 09:38:24 +0000 (12:38 +0300)
commit4b8e24b9ad308c30dbe2184e06848e638e018114
tree75aa34a22d85cf402477a97991a1513de657dcc8
parentf7bb7f0625771bc71869cdadafcf54450b2db08f
Fix a couple of bugs with wal_log_hints.

1. Replay of the WAL record for setting a bit in the visibility map
contained an assertion that a full-page image of that record type can only
occur with checksums enabled. But it can also happen with wal_log_hints, so
remove the assertion. Unlike checksums, wal_log_hints can be changed on the
fly, so it would be complicated to figure out if it was enabled at the time
that the WAL record was generated.

2. wal_log_hints has the same effect on the locking needed to read the LSN
of a page as data checksums. BufferGetLSNAtomic() didn't get the memo.

Backpatch to 9.4, where wal_log_hints was added.
src/backend/access/heap/heapam.c
src/backend/storage/buffer/bufmgr.c