Allow usage of huge maintenance_work_mem for GIN build.
Teodor Sigaev <teodor@sigaev.ru>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/gin/ginbulk.c | modified | +9 −1 |
| src/backend/access/gin/ginfast.c | modified | +1 −1 |
| src/backend/access/gin/gininsert.c | modified | +1 −1 |
| src/include/access/gin_private.h | modified | +1 −1 |