diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-06-26 12:38:24 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2015-06-26 12:38:24 +0300 |
commit | 4b8e24b9ad308c30dbe2184e06848e638e018114 (patch) | |
tree | 75aa34a22d85cf402477a97991a1513de657dcc8 /src/backend/storage/buffer/bufmgr.c | |
parent | f7bb7f0625771bc71869cdadafcf54450b2db08f (diff) | |
download | postgresql-4b8e24b9ad308c30dbe2184e06848e638e018114.tar.gz postgresql-4b8e24b9ad308c30dbe2184e06848e638e018114.zip |
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.
Diffstat (limited to 'src/backend/storage/buffer/bufmgr.c')
-rw-r--r-- | src/backend/storage/buffer/bufmgr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index cc973b53a91..e4b25587e98 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -2496,7 +2496,7 @@ BufferGetLSNAtomic(Buffer buffer) /* * If we don't need locking for correctness, fastpath out. */ - if (!DataChecksumsEnabled() || BufferIsLocal(buffer)) + if (!XLogHintBitIsNeeded() || BufferIsLocal(buffer)) return PageGetLSN(page); /* Make sure we've got a real buffer, and that we hold a pin on it. */ |