Re: Memory leak on hashed agg rescan
От | Tom Lane |
---|---|
Тема | Re: Memory leak on hashed agg rescan |
Дата | |
Msg-id | 10455.1224160007@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Memory leak on hashed agg rescan ("Neil Conway" <neil.conway@gmail.com>) |
Ответы |
Re: Memory leak on hashed agg rescan
|
Список | pgsql-hackers |
"Neil Conway" <neil.conway@gmail.com> writes: > 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. It would probably be cleaner to take that logic out of build_hash_table altogether, and put it in a separate function to be called by ExecInitAgg. regards, tom lane
В списке pgsql-hackers по дате отправления: