diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-04-15 00:02:26 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-04-15 00:02:26 -0400 |
commit | f0e766bd7f77774075297526bd2da8f3de226c1f (patch) | |
tree | 66f335c2ebaf0e37d5483efa4319b7b9a8cc3bc5 /src | |
parent | 6f0d6a507889d94a79c0d18577a0cb1ccc2b6815 (diff) | |
download | postgresql-f0e766bd7f77774075297526bd2da8f3de226c1f.tar.gz postgresql-f0e766bd7f77774075297526bd2da8f3de226c1f.zip |
Fix memory leak in GIN index scans.
The code had a query-lifespan memory leak when encountering GIN entries
that have posting lists (rather than posting trees, ie, there are a
relatively small number of heap tuples containing this index key value).
With a suitable data distribution this could add up to a lot of leakage.
Problem seems to have been introduced by commit 36a35c550, so back-patch
to 9.4.
Julien Rouhaud
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/gin/ginget.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index b79ba1e62af..610829852a6 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -281,6 +281,7 @@ collectMatchBitmap(GinBtreeData *btree, GinBtreeStack *stack, ipd = ginReadTuple(btree->ginstate, scanEntry->attnum, itup, &nipd); tbm_add_tuples(scanEntry->matchBitmap, ipd, nipd, false); scanEntry->predictNumberResult += GinGetNPosting(itup); + pfree(ipd); } /* |