Fix a gradual memory leak in ExecReScanAgg(). Because the aggregation

Neil Conway <neilc@samurai.com>

Commit: c5e86719b0eacce9950bb3d70ec28b0d9bfef008
Author: Neil Conway <neilc@samurai.com>
Date: 2007-08-08T18:06:58Z
Releases: 8.0.14
Fix a gradual memory leak in ExecReScanAgg(). Because the aggregation
hash table is allocated in a child context of the agg node's memory
context, MemoryContextReset() will reset but *not* delete the child
context. Since ExecReScanAgg() proceeds to build a new hash table
from scratch (in a new sub-context), this results in leaking the
header for the previous memory context. Therefore, use
MemoryContextResetAndDeleteChildren() instead.

Credit: My colleague Sailesh Krishnamurthy at Truviso for isolating
the cause of the leak.

Files

PathChange+/−
src/backend/executor/nodeAgg.c modified +9 −3