From: Robert Haas Date: Mon, 20 Mar 2017 19:55:27 +0000 (-0400) Subject: Another fix for single-page hash index vacuum. X-Git-Tag: REL_10_BETA1~585 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9abbf4727de746222ad8fc15b17348065389ae43;p=thirdparty%2Fpostgresql.git 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 --- 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; }