pgsql: Plug leak in BuildTupleHashTable by creating ExprContext incorr - Mailing list pgsql-committers

From Andres Freund
Subject pgsql: Plug leak in BuildTupleHashTable by creating ExprContext incorr
Date
Msg-id E1gsP68-0004hq-Mk@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Plug leak in BuildTupleHashTable by creating ExprContext in correct context.

In bf6c614a2f2c5 I added a expr context to evaluate the grouping
expression. Unfortunately the code I added initialized them while in
the calling context, rather the table context.  Additionally, I used
CreateExprContext() rather than CreateStandaloneExprContext(), which
creates the econtext in the estate's query context.

Fix that by using CreateStandaloneExprContext when in the table's
tablecxt. As we rely on the memory being freed by a memory context
reset that means that the econtext's shutdown callbacks aren't being
called, but that seems ok as the expressions are tightly controlled
due to ExecBuildGroupingEqual().

Bug: #15592
Reported-By: Dmitry Marakasov
Author: Andres Freund
Discussion: https://postgr.es/m/20190114222838.h6r3fuyxjxkykf6t@alap3.anarazel.de
Backpatch: 11, where I broke this in bf6c614a2f2c5

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/9cf37a527cf83e94f8f166d380baf53287a0337b

Modified Files
--------------
src/backend/executor/execGrouping.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: pgsql: simplehash: Add support for resetting a hashtable's contents.
Next
From: Andres Freund
Date:
Subject: pgsql: For 11 only,put back heap_expand_tuple to GetTupleForTrigger().