aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pl/plpython/plpython.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 25e4d2653d3..889c84ab565 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.122.2.2 2010/02/18 23:50:12 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.122.2.3 2010/04/30 19:15:51 tgl Exp $
*
*********************************************************************
*/
@@ -2729,9 +2729,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();
@@ -2742,11 +2739,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;