Re: Re: [COMMITTERS] pgsql: Fix plpgsql to release SPI plans when a function or DO block is

Stephen Frost <sfrost@snowman.net>

From: Stephen Frost <sfrost@snowman.net>
To: Jan Urbański <wulczer@wulczer.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, David Fetter <david@fetter.org>, PG Hackers <pgsql-hackers@postgresql.org>
Date: 2011-03-28T15:25:39Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix plpgsql to release SPI plans when a function or DO block is freed.

* Jan Urbański (wulczer@wulczer.org) wrote:
> On 28/03/11 04:31, Tom Lane wrote:
> >> Do the other PLs we ship need similar fixes?
> > 
> > Offhand I think the other PLs leave management of prepared plans to the
> > user.  If there are any places where they cache plans behind the scenes,
> > maybe a similar fix would be appropriate.
> 
> FWIW I executed
> 
> do $$ plpy.execute("select 1 from pg_class") $$ language plpythonu;
> 
> 10k times in a session and the backend grew a lot in memory and never
> released it. I can't offhand see where the memory went, I'll try to
> investigate in the evening.

I'm about 90% sure that they all have this problem..  I havn't had a
chance to look at how Tom fixed pl/pgsql (I didn't think it'd be easy to
do w/o coming up with a way to explicitly tell the PL to release
something) so perhaps I'm mistaken, but they all share very similar
code..

	Thanks,

		Stephen