pgsql: Fix query-lifespan memory leakage in repeatedly executed hashjo

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix query-lifespan memory leakage in repeatedly executed hashjo
Дата
Msg-id E1ewvaG-0006zw-DL@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix query-lifespan memory leakage in repeatedly executed hash joins.

ExecHashTableCreate allocated some memory that wasn't freed by
ExecHashTableDestroy, specifically the per-hash-key function information.
That's not a huge amount of data, but if one runs a query that repeats
a hash join enough times, it builds up.  Fix by arranging for the data
in question to be kept in the hashtable's hashCxt instead of leaving it
"loose" in the query-lifespan executor context.  (This ensures that we'll
also clean up anything that the hash functions allocate in fn_mcxt.)

Per report from Amit Khandekar.  It's been like this forever, so back-patch
to all supported branches.

Discussion: https://postgr.es/m/CAJ3gD9cFofAWGvcxLOxDHC=B0hjtW8yGmUsF2hdGh97CM38=7g@mail.gmail.com

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/bdc7f686d1b8f423cbd60a84cd839eca86475fd6

Modified Files
--------------
src/backend/executor/nodeHash.c | 35 ++++++++++++++++++-----------------
1 file changed, 18 insertions(+), 17 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Doc: explicitly point out that enum values can't be dropped.
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: Add 'unit' parameter to ExplainProperty{Integer,Float}.