pgsql: Fix plpgsql to release SPI plans when a function or DO block is
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-committers@postgresql.org
Date: 2011-03-27T16:51:13Z
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 →
-
Fix plpgsql to release SPI plans when a function or DO block is freed.
- 87f2ad1326bf 9.1.0 cited
Fix plpgsql to release SPI plans when a function or DO block is freed. This fixes the gripe I made a few months ago about DO blocks getting slower with repeated use. At least, it fixes it for the case where the DO block isn't aborted by an error. We could try running plpgsql_free_function_memory() even during error exit, but that seems a bit scary since it makes a lot of presumptions about the data structures being in good shape. It's probably reasonable to assume that repeated failures of DO blocks isn't a performance-critical case. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/87f2ad1326bff5cd37dde6fbf024137a2243efea Modified Files -------------- src/pl/plpgsql/src/pl_comp.c | 7 +- src/pl/plpgsql/src/pl_funcs.c | 398 +++++++++++++++++++++++++++++++++++++++ src/pl/plpgsql/src/pl_handler.c | 10 + src/pl/plpgsql/src/plpgsql.h | 1 + 4 files changed, 411 insertions(+), 5 deletions(-)