diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index 54b2db88a6..ee2eb63346 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -302,6 +302,8 @@ restartScanEntry: entry->buffer = InvalidBuffer; ItemPointerSetMin(&entry->curItem); entry->offset = InvalidOffsetNumber; + if (entry->list) + pfree(entry->list); entry->list = NULL; entry->nlist = 0; entry->matchBitmap = NULL; diff --git a/src/backend/access/gin/ginscan.c b/src/backend/access/gin/ginscan.c index ac3a92b198..81e4a6ac6a 100644 --- a/src/backend/access/gin/ginscan.c +++ b/src/backend/access/gin/ginscan.c @@ -249,6 +249,8 @@ ginFreeScanKeys(GinScanOpaque so) if (entry->buffer != InvalidBuffer) ReleaseBuffer(entry->buffer); + if (entry->list) + pfree(entry->list); if (entry->matchIterator) tbm_end_iterate(entry->matchIterator); if (entry->matchBitmap) @@ -288,7 +290,7 @@ ginNewScanKey(IndexScanDesc scan) so->totalentries = 0; so->allocentries = 32; so->entries = (GinScanEntry *) - palloc0(so->allocentries * sizeof(GinScanEntry)); + palloc(so->allocentries * sizeof(GinScanEntry)); so->isVoidRes = false;