Fix permanent memory leak in autovacuum launcher
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 8 Nov 2010 21:35:42 +0000 (18:35 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 8 Nov 2010 21:35:42 +0000 (18:35 -0300)
commit854ae8c3a6bab2053f8bdbc453787be878ce8c81
treeb2514853fdfe200912a73366aa58c70aca55bf79
parent947d0c862c895618a874344322e7b07c9df05cb2
Fix permanent memory leak in autovacuum launcher

get_database_list was uselessly allocating its output data, along some
created along the way, in a permanent memory context.  This didn't
matter when autovacuum was a single, short-lived process, but now that
the launcher is permanent, it shows up as a permanent leak.

To fix, make get_database list allocate its output data in the caller's
context, which is in charge of freeing it when appropriate; and the
memory leaked by heap_beginscan et al is allocated in a throwaway
transaction context.
src/backend/postmaster/autovacuum.c