diff options
| author | Teodor Sigaev <teodor@sigaev.ru> | 2015-09-02 20:08:58 +0300 |
|---|---|---|
| committer | Teodor Sigaev <teodor@sigaev.ru> | 2015-09-02 20:08:58 +0300 |
| commit | 30bb26b5e04cff911db960801e32e5f57045eb61 (patch) | |
| tree | b05b945313ce910e999818a1194b2e88183b32f7 /src/include | |
| parent | 075ab425bdbb4bb2de41624305f20885cae7ba7e (diff) | |
Allow usage of huge maintenance_work_mem for GIN build.
Currently, in-memory posting list during GIN build process is limited 1GB
because of using repalloc. The patch replaces call of repalloc to repalloc_huge.
It increases limit of posting list from 180 millions
(1GB / sizeof(ItemPointerData)) to 4 billions limited by maxcount/count fields
in GinEntryAccumulator and subsequent calls. Check added.
Also, fix accounting of allocatedMemory during build to prevent integer
overflow with maintenance_work_mem > 4GB.
Robert Abraham <robert.abraham86@googlemail.com> with additions by me
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/access/gin_private.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/access/gin_private.h b/src/include/access/gin_private.h index 5095fc1dba8..acbe36a7414 100644 --- a/src/include/access/gin_private.h +++ b/src/include/access/gin_private.h @@ -903,7 +903,7 @@ typedef struct GinEntryAccumulator typedef struct { GinState *ginstate; - long allocatedMemory; + Size allocatedMemory; GinEntryAccumulator *entryallocator; uint32 eas_used; RBTree *tree; |
