|
1 | 1 | /********************************************************************** |
2 | 2 | * plpython.c - python as a procedural language for PostgreSQL |
3 | 3 | * |
4 | | - *$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.142 2010/04/30 19:15:45 tgl Exp $ |
| 4 | + *$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.143 2010/05/01 17:04:38 tgl Exp $ |
5 | 5 | * |
6 | 6 | ********************************************************************* |
7 | 7 | */ |
@@ -541,12 +541,15 @@ plpython_inline_handler(PG_FUNCTION_ARGS) |
541 | 541 | } |
542 | 542 | PG_CATCH(); |
543 | 543 | { |
| 544 | +PLy_procedure_delete(proc); |
544 | 545 | PLy_curr_procedure=save_curr_proc; |
545 | 546 | PyErr_Clear(); |
546 | 547 | PG_RE_THROW(); |
547 | 548 | } |
548 | 549 | PG_END_TRY(); |
549 | 550 |
|
| 551 | +PLy_procedure_delete(proc); |
| 552 | + |
550 | 553 | /* Pop the error context stack */ |
551 | 554 | error_context_stack=plerrcontext.previous; |
552 | 555 |
|
@@ -1664,6 +1667,7 @@ PLy_procedure_delete(PLyProcedure *proc) |
1664 | 1667 | } |
1665 | 1668 | if (proc->argnames) |
1666 | 1669 | PLy_free(proc->argnames); |
| 1670 | +PLy_free(proc); |
1667 | 1671 | } |
1668 | 1672 |
|
1669 | 1673 | /* |
|