Fix locking problem in _hash_squeezebucket() / _hash_freeovflpage().

Robert Haas <rhaas@postgresql.org>

Commit: dd728826c538f000220af98de025c00114ad0631
Author: Robert Haas <rhaas@postgresql.org>
Date: 2016-12-19T17:31:50Z
Releases: 10.0
Fix locking problem in _hash_squeezebucket() / _hash_freeovflpage().

A bucket squeeze operation needs to lock each page of the bucket
before releasing the prior page, but the previous coding fumbled the
locking when freeing an overflow page during a bucket squeeze
operation.  Commit 6d46f4783efe457f74816a75173eb23ed8930020
introduced this bug.

Amit Kapila, with help from Kuntal Ghosh and Dilip Kumar, after
an initial trouble report by Jeff Janes.  Reviewed by me.  I also
fixed a problem with a comment.

Files

PathChange+/−
src/backend/access/hash/hashovfl.c modified +12 −29
src/include/access/hash.h modified +1 −1