aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-04-15 00:02:26 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2016-04-15 00:02:26 -0400
commitf0e766bd7f77774075297526bd2da8f3de226c1f (patch)
tree66f335c2ebaf0e37d5483efa4319b7b9a8cc3bc5 /src
parent6f0d6a507889d94a79c0d18577a0cb1ccc2b6815 (diff)
downloadpostgresql-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.c1
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);
}
/*