Added to TODO: * Consider simplifying how memory context resets handle child contexts
http://archives.postgresql.org/pgsql-patches/2007-08/msg00067.php --------------------------------------------------------------------------- Neil Conway wrote: > On Mon, 2007-08-06 at 18:52 -0400, Tom Lane wrote: > > Hmm. Good catch, but I can't help wondering if this is just the tip > > of the iceberg. Should *every* MemoryContextReset be > > MemoryContextResetAndDeleteChildren? > > Yeah, the same thought occurred to me. Certainly having the current > behavior as the default is error-prone: it's quite easy to leak child > contexts on Reset. Perhaps we could redefine Reset to mean > ResetAndDeleteChildren, and add another name for the current Reset > functionality. ResetAndPreserveChildren, maybe? > > > If we redefined MemoryContextReset to be the same as > > MemoryContextResetAndDeleteChildren, it'd be possible to keep the > > headers for child contexts in their parent context, thus easing > > traffic in TopMemoryContext, and perhaps saving a few pfree cycles > > when resetting the parent > > The fact that MemoryContextCreate allocates the context header in > TopMemoryContext has always made me uneasy, so getting rid of that would > be nice. I wonder if there's not at least *one* place that depends on > the current Reset behavior, though... > > > Anyone want to investigate what happens if we make MemoryContextReset > > the same as MemoryContextResetAndDeleteChildren? > > Sure, I'll take a look, but I'll apply the attached patch in the mean > time (above cleanup is probably 8.4 material anyway). > > -Neil > > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster -- Bruce Momjian <[EMAIL PROTECTED]> http://momjian.us EnterpriseDB http://postgres.enterprisedb.com + If your life is a hard drive, Christ can be your backup. + -- Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-patches