From 16dcd5e5ce460c976cec93cfbbe4e6e970168450 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 16 Nov 2007 21:50:06 +0000 Subject: [PATCH] GIN index build's allocatedMemory counter needs to be long, not uint32. Else, in a 64-bit machine with maintenance_work_mem set to above 4Gb, the counter overflows and we never recognize having reached the maintenance_work_mem limit. I believe this explains out-of-memory failure recently reported by Sean Davis. This is a bug, so backpatch to 8.2. --- src/include/access/gin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/include/access/gin.h b/src/include/access/gin.h index a6bdf1a6e6a..fdc0c0a8e47 100644 --- a/src/include/access/gin.h +++ b/src/include/access/gin.h @@ -4,7 +4,7 @@ * * Copyright (c) 2006-2007, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.14 2007/11/15 21:14:42 momjian Exp $ + * $PostgreSQL: pgsql/src/include/access/gin.h,v 1.15 2007/11/16 21:50:06 tgl Exp $ *-------------------------------------------------------------------------- */ @@ -453,7 +453,7 @@ typedef struct uint32 maxdepth; EntryAccumulator **stack; uint32 stackpos; - uint32 allocatedMemory; + long allocatedMemory; uint32 length; EntryAccumulator *entryallocator; -- 2.39.5