From 20a526d5c46d0c78c90f1b2a29f40ce27ce852e2 Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Wed, 22 Nov 2017 11:20:26 +0100 Subject: [PATCH] Fix memory leak in ListToHashSet --- src/backend/distributed/utils/listutils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/utils/listutils.c b/src/backend/distributed/utils/listutils.c index 2b7a68ddc..9d680920b 100644 --- a/src/backend/distributed/utils/listutils.c +++ b/src/backend/distributed/utils/listutils.c @@ -121,7 +121,7 @@ ListToHashSet(List *itemList, Size keySize, bool isStringList) HASHCTL info; HTAB *itemSet = NULL; ListCell *itemCell = NULL; - int flags = HASH_ELEM; + int flags = HASH_ELEM | HASH_CONTEXT; /* allocate sufficient capacity for O(1) expected look-up time */ int capacity = (int) (list_length(itemList) / 0.75) + 1; @@ -130,6 +130,7 @@ ListToHashSet(List *itemList, Size keySize, bool isStringList) memset(&info, 0, sizeof(info)); info.keysize = keySize; info.entrysize = keySize; + info.hcxt = CurrentMemoryContext; if (!isStringList) {