diff options
-rw-r--r-- | src/backend/access/gist/gistscan.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c index aeb1a8282c8..27b92e4a362 100644 --- a/src/backend/access/gist/gistscan.c +++ b/src/backend/access/gist/gistscan.c @@ -226,14 +226,17 @@ gistendscan(PG_FUNCTION_ARGS) gistfreestack(so->stack); gistfreestack(so->markstk); if (so->giststate != NULL) + { freeGISTstate(so->giststate); + pfree(so->giststate); + } /* drop pins on buffers -- we aren't holding any locks */ if (BufferIsValid(so->curbuf)) ReleaseBuffer(so->curbuf); if (BufferIsValid(so->markbuf)) ReleaseBuffer(so->markbuf); MemoryContextDelete(so->tempCxt); - pfree(scan->opaque); + pfree(so); } PG_RETURN_VOID(); |