diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index 2329d4eb28c..e4c32eb33a3 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.141 2010/03/18 19:43:03 petere Exp $ + * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.142 2010/04/30 19:15:45 tgl Exp $ * ********************************************************************* */ @@ -3147,9 +3147,6 @@ PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status) PyList_SetItem(result->rows, i, row); } - PLy_typeinfo_dealloc(&args); - - SPI_freetuptable(tuptable); } } PG_CATCH(); @@ -3160,11 +3157,15 @@ PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status) if (!PyErr_Occurred()) PLy_exception_set(PLy_exc_error, "unrecognized error in PLy_spi_execute_fetch_result"); - Py_DECREF(result); PLy_typeinfo_dealloc(&args); + SPI_freetuptable(tuptable); + Py_DECREF(result); return NULL; } PG_END_TRY(); + + PLy_typeinfo_dealloc(&args); + SPI_freetuptable(tuptable); } return (PyObject *) result;