aboutsummaryrefslogtreecommitdiff
path: root/src/include/access/gin.h
diff options
context:
space:
mode:
authorTeodor Sigaev <teodor@sigaev.ru>2008-04-22 17:52:43 +0000
committerTeodor Sigaev <teodor@sigaev.ru>2008-04-22 17:52:43 +0000
commitcf23b75b4dce75151df7164ed72263e66b758ae9 (patch)
tree9ff8aeaf4a1838b8f5fa7c82ee0efadd310f3598 /src/include/access/gin.h
parentfc507eb0b655e40b7d8a891c920a8a1ef8a2a8b1 (diff)
downloadpostgresql-cf23b75b4dce75151df7164ed72263e66b758ae9.tar.gz
postgresql-cf23b75b4dce75151df7164ed72263e66b758ae9.zip
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.
Diffstat (limited to 'src/include/access/gin.h')
-rw-r--r--src/include/access/gin.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/include/access/gin.h b/src/include/access/gin.h
index 7a343c62c49..614e8566b90 100644
--- a/src/include/access/gin.h
+++ b/src/include/access/gin.h
@@ -4,7 +4,7 @@
*
* Copyright (c) 2006-2008, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.17 2008/04/10 22:25:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.18 2008/04/22 17:52:43 teodor Exp $
*--------------------------------------------------------------------------
*/
@@ -356,14 +356,16 @@ typedef struct GinScanEntryData
/* entry, got from extractQueryFn */
Datum entry;
- /* current ItemPointer to heap, its offset in buffer and buffer */
- ItemPointerData curItem;
- OffsetNumber offset;
+ /* Current page in posting tree */
Buffer buffer;
- /* in case of Posing list */
+ /* current ItemPointer to heap */
+ ItemPointerData curItem;
+
+ /* used for Posting list and one page in Posting tree */
ItemPointerData *list;
- uint32 nlist;
+ uint32 nlist;
+ OffsetNumber offset;
bool isFinished;
bool reduceResult;