Re: Partitioning option for COPY

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Emmanuel Cecchet <manu@asterdata.com>
Cc: Jan Urbański <wulczer@wulczer.org>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2009-11-17T15:03:39Z
Lists: pgsql-hackers
Emmanuel Cecchet <manu@asterdata.com> writes:
> Tom Lane wrote:
>> This looks like the patch is trying to create a data structure in a
>> memory context that's not sufficiently long-lived for the use of the
>> structure.  If you do this in a non-cassert build, it will seem to
>> work, some of the time, if the memory in question happens to not
>> get reallocated to something else.
>> 
> I was using the CacheMemoryContext. Could someone tell me why this is 
> wrong and what should have been the appropriate context to use?

Well, (a) I doubt you really were creating the list in
CacheMemoryContext, else it'd have not gotten clobbered; (b) creating
statement-local data structures in CacheMemoryContext is entirely
unacceptable anyway, because then they represent a permanent memory
leak.

The right context for statement-lifetime data structures is generally
the CurrentMemoryContext the statement code is called with.

			regards, tom lane