Fix locking problem in _hash_squeezebucket() / _hash_freeovflpage().
Robert Haas <rhaas@postgresql.org>
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
| Path | Change | +/− |
|---|---|---|
| src/backend/access/hash/hashovfl.c | modified | +12 −29 |
| src/include/access/hash.h | modified | +1 −1 |