Re: Tuplestore should remember the memory context it's created in
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2009-12-22T18:57:00Z
Lists: pgsql-hackers
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes: > Tom Lane wrote: >> BTW, I'm not convinced that the owner-switchery you added to pl_exec.c >> is necessary/appropriate. Under what circumstances would that be a good >> idea? > A PL/pgSQL normally runs in the whatever resource owner is current when > the function is called. When we allocate the tuplestore for return > tuples, it's associated with the current resource owner. > But if you have an exception-block, we start a new subtransaction and > switch to the subtransaction resource owner. If you have a RETURN > NEXT/QUERY in the block, the tuplestore (or the temporary file backing > it, to be precise) is initialized into the subtransaction resource > owner, which is released at subtransaction commit. Got it. So doesn't tuplesort have the same issue? The patch definitely requires more than zero comments. regards, tom lane