summaryrefslogtreecommitdiff
path: root/src/backend/executor/execCurrent.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-03-16 16:03:45 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2018-03-16 16:03:45 -0400
commit5149dc93467465e38645a5c318d7d90d806b5e53 (patch)
tree4a1109de07d0e165d0aad1d8dcad3e33bc4d0806 /src/backend/executor/execCurrent.c
parent02c4ad357d2189a48d744449a8b9d165ea42ad24 (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/executor/execCurrent.c')
0 files changed, 0 insertions, 0 deletions