summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pl/plpython/plpython.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 5f485aa9e19..a2051534290 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.26.2.6 2003/09/17 18:40:11 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.26.2.7 2006/02/20 20:10:48 neilc Exp $
*
*********************************************************************
*/
@@ -1131,7 +1131,7 @@ PLy_procedure_create(FunctionCallInfo fcinfo, bool is_trigger,
}
/*
- * now get information required for input conversion of the procedures
+ * now get information required for input conversion of the procedure's
* arguments.
*/
proc->nargs = fcinfo->nargs;
@@ -2855,6 +2855,7 @@ PLy_traceback(int *xlevel)
}
PyErr_NormalizeException(&e, &v, &tb);
+ Py_XDECREF(tb);
eob = PyObject_Str(e);
if ((v) && ((vob = PyObject_Str(v)) != NULL))
@@ -2867,9 +2868,10 @@ PLy_traceback(int *xlevel)
Py_DECREF(eob);
Py_XDECREF(vob);
+ Py_XDECREF(v);
/*
- * intuit an appropriate error level for based on the exception type
+ * intuit an appropriate error level based on the exception type
*/
if ((PLy_exc_error) && (PyErr_GivenExceptionMatches(e, PLy_exc_error)))
*xlevel = ERROR;
@@ -2878,6 +2880,7 @@ PLy_traceback(int *xlevel)
else
*xlevel = ERROR;
+ Py_DECREF(e);
leave();
return xstr;