diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-03-16 16:03:45 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-03-16 16:03:45 -0400 |
commit | 2709549ecdd68313201307653f3ddd0f24dd8427 (patch) | |
tree | 31ff7b2f5f9efba5a9a17a3646d482d8350e5609 /src/backend/access/common/heaptuple.c | |
parent | 21c90dfcf8305d214d052fa0f36f2d7359bbd698 (diff) |
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
Diffstat (limited to 'src/backend/access/common/heaptuple.c')
0 files changed, 0 insertions, 0 deletions