plpython-warn.patch

text/x-patch

Filename: plpython-warn.patch
Type: text/x-patch
Part: 0
Message: Re: Python 2.7 deprecated the PyCObject API?

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
plpython.c 5 0
Index: plpython.c
===================================================================
RCS file: /cvsroot/pgsql/src/pl/plpython/plpython.c,v
retrieving revision 1.148
diff -u -3 -p -r1.148 plpython.c
--- plpython.c	8 Jul 2010 19:00:11 -0000	1.148
+++ plpython.c	17 Aug 2010 18:45:49 -0000
@@ -1315,6 +1315,8 @@ PLy_procedure_get(FunctionCallInfo fcinf
 			elog(FATAL, "expected a PyCObject, didn't get one");
 
 		proc = PyCObject_AsVoidPtr(plproc);
+		if (!proc)
+			PLy_elog(ERROR, "PyCObject_AsVoidPtr() failed");
 		if (proc->me != plproc)
 			elog(FATAL, "proc->me != plproc");
 		/* did we find an up-to-date cache entry? */
@@ -1539,8 +1541,11 @@ PLy_procedure_create(HeapTuple procTup, 
 		PLy_procedure_compile(proc, procSource);
 
 		pfree(procSource);
+		procSource = NULL;
 
 		proc->me = PyCObject_FromVoidPtr(proc, NULL);
+		if (!proc->me)
+			PLy_elog(ERROR, "PyCObject_FromVoidPtr() failed");
 		PyDict_SetItemString(PLy_procedure_cache, key, proc->me);
 	}
 	PG_CATCH();