From: | "Neil Conway" <neil(dot)conway(at)gmail(dot)com> |
---|---|
To: | "PostgreSQL Hackers" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Memory leak on hashed agg rescan |
Date: | 2008-10-16 02:18:30 |
Message-ID: | b4e5ce320810151918g2acf69ebh9f80f4f2e1c203a0@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I noticed a minor leak in the per-query context when ExecReScanAgg()
is called for a hashed aggregate. During rescan, build_hash_table() is
called to create a new empty hash table in the aggcontext. However,
build_hash_table() also constructs the "hash_needed" column list in
the per-query context, so repeated calls of build_hash_table() result
in leaking this memory for the duration of the query.
Attached is a patch that fixes this by only constructing "hash_needed"
if it doesn't already exist. I also bms_free'd the temporary BMS that
is created, although that's pretty harmless.
Neil
Attachment | Content-Type | Size |
---|---|---|
hashed_agg_mem_leak-1.patch | application/octet-stream | 2.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2008-10-16 02:33:31 | Re: array_agg (was Re: The Axe list) |
Previous Message | ITAGAKI Takahiro | 2008-10-16 01:34:05 | Re: Annoying error messages in _dosmaperr |