diff options
-rw-r--r-- | src/pl/plpython/plpython.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index f765a685cae..93548520292 100644 --- a/src/pl/plpython/plpython.c +++ b/src/pl/plpython/plpython.c @@ -29,7 +29,7 @@ * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.41.2.4 2007/11/23 01:48:08 alvherre Exp $ + * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.41.2.5 2010/04/30 19:16:27 tgl Exp $ * ********************************************************************* */ @@ -2283,9 +2283,9 @@ PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status) PLyTypeInfo args; int i; - PLy_typeinfo_init(&args); Py_DECREF(result->nrows); result->nrows = PyInt_FromLong(rows); + PLy_typeinfo_init(&args); SAVE_EXC(); if (TRAP_EXC()) @@ -2295,8 +2295,9 @@ PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status) if (!PyErr_Occurred()) PyErr_SetString(PLy_exc_error, "Unknown error in PLy_spi_execute_fetch_result"); - Py_DECREF(result); PLy_typeinfo_dealloc(&args); + SPI_freetuptable(tuptable); + Py_DECREF(result); RERAISE_EXC(); } @@ -2313,11 +2314,11 @@ PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status) PyList_SetItem(result->rows, i, row); } - PLy_typeinfo_dealloc(&args); - - SPI_freetuptable(tuptable); } RESTORE_EXC(); + + PLy_typeinfo_dealloc(&args); + SPI_freetuptable(tuptable); } return (PyObject *) result; |