Fix using too many LWLocks bug, reported by Craig Ringer

Teodor Sigaev <teodor@sigaev.ru>

Commit: cf23b75b4dce75151df7164ed72263e66b758ae9
Author: Teodor Sigaev <teodor@sigaev.ru>
Date: 2008-04-22T17:52:43Z
Releases: 8.4.0
Fix using too many LWLocks bug, reported by Craig Ringer
<craig@postnewspapers.com.au>.
It was my mistake, I missed limitation of number of held locks, now GIN doesn't
use continiuous locks, but still hold buffers pinned to prevent interference
with vacuum's deletion algorithm.

Backpatch is needed.

Files

PathChange+/−
src/backend/access/gin/ginget.c modified +157 −205
src/include/access/gin.h modified +8 −6