aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2017-03-20 15:55:27 -0400
committerRobert Haas <rhaas@postgresql.org>2017-03-20 15:55:27 -0400
commit9abbf4727de746222ad8fc15b17348065389ae43 (patch)
tree08575583e6c5d22a931945a4086489ef0e312e58 /src
parent953477ca3526e28f9aeeb41d23b16eed0084c7d2 (diff)
downloadpostgresql-9abbf4727de746222ad8fc15b17348065389ae43.tar.gz
postgresql-9abbf4727de746222ad8fc15b17348065389ae43.zip
Another fix for single-page hash index vacuum.
The WAL consistency checking code needed to be updated for the new page status bit, but that didn't get done previously. Ashutosh Sharma, reviewed by Amit Kapila Discussion: http://postgr.es/m/CAA4eK1LP_oz4EfMen14OjJuzN5CqPdfRkFFuA-MfkcfeE8zGyg@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/hash/hash_xlog.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/access/hash/hash_xlog.c b/src/backend/access/hash/hash_xlog.c
index ac82092ab24..de7522ea01f 100644
--- a/src/backend/access/hash/hash_xlog.c
+++ b/src/backend/access/hash/hash_xlog.c
@@ -1250,8 +1250,14 @@ hash_mask(char *pagedata, BlockNumber blkno)
/*
* In hash bucket and overflow pages, it is possible to modify the
* LP_FLAGS without emitting any WAL record. Hence, mask the line
- * pointer flags. See hashgettuple() for details.
+ * pointer flags. See hashgettuple(), _hash_kill_items() for details.
*/
mask_lp_flags(page);
}
+
+ /*
+ * It is possible that the hint bit LH_PAGE_HAS_DEAD_TUPLES may remain
+ * unlogged. So, mask it. See _hash_kill_items() for details.
+ */
+ opaque->hasho_flag &= ~LH_PAGE_HAS_DEAD_TUPLES;
}