Patch applied. Thanks. ---------------------------------------------------------------------------
Michael Fuhr wrote: > This patch addresses the problem mentioned in the "process crash > when a plpython function returns unicode" thread: > > http://archives.postgresql.org/pgsql-bugs/2005-06/msg00105.php > > In several places PL/Python was calling PyObject_Str() and then > PyString_AsString() without checking if the former had returned > NULL to indicate an error. PyString_AsString() doesn't expect a > NULL argument, so passing one causes a segmentation fault. This > patch adds checks for NULL and raises errors via PLy_elog(), which > prints details of the underlying Python exception. The patch also > adds regression tests for these checks. All tests pass on my > Solaris 9 box running HEAD and Python 2.4.1. > > In one place the patch doesn't call PLy_elog() because that could > cause infinite recursion; see the comment I added. I'm not sure > how to test that particular case or whether it's even possible to > get an error there: the value that the code should check is the > Python exception type, so I wonder if a NULL value "shouldn't > happen." This patch converts NULL to "Unknown Exception" but I > wonder if an Assert() would be appropriate. > > The patch is against HEAD but the same changes should be applied > to earlier versions because they have the same problem. The patch > might not apply cleanly against earlier versions -- will the committer > take care of little differences or should I submit different versions > of the patch? > > -- > Michael Fuhr > http://www.fuhr.org/~mfuhr/ [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED] -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend