diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index e4c32eb33a3f21ac5152e37d10ce18b04dc29cf1..7ddc223dfd4ab75618434e293cd82a9b3c044361 100644 --- a/src/pl/plpython/plpython.c +++ b/src/pl/plpython/plpython.c @@ -1,7 +1,7 @@ /********************************************************************** * plpython.c - python as a procedural language for PostgreSQL * - * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.142 2010/04/30 19:15:45 tgl Exp $ + * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.143 2010/05/01 17:04:38 tgl Exp $ * ********************************************************************* */ @@ -541,12 +541,15 @@ plpython_inline_handler(PG_FUNCTION_ARGS) } PG_CATCH(); { + PLy_procedure_delete(proc); PLy_curr_procedure = save_curr_proc; PyErr_Clear(); PG_RE_THROW(); } PG_END_TRY(); + PLy_procedure_delete(proc); + /* Pop the error context stack */ error_context_stack = plerrcontext.previous; @@ -1664,6 +1667,7 @@ PLy_procedure_delete(PLyProcedure *proc) } if (proc->argnames) PLy_free(proc->argnames); + PLy_free(proc); } /*