plpython: fix for improperly handled NULL arguments in prepared plans - Mailing list pgsql-patches

From Andrew Bosma
Subject plpython: fix for improperly handled NULL arguments in prepared plans
Date
Msg-id 1043799367.6563.120.camel@dendroica
Whole thread Raw
Responses Re: plpython: fix for improperly handled NULL arguments in prepared plans  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: plpython: fix for improperly handled NULL arguments in prepared plans  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-patches
The attached patch fixes a bug reported by Kevin Jacobs

> When we create a function like so:
>
> CREATE OR REPLACE FUNCTION jojo (timestamp) RETURNS varchar AS '
> pln = plpy.prepare("UPDATE jtab SET jfld = $1",["timestamp"])
> rcs = plpy.execute(pln,[args[0]])
> return "YES"' LANGUAGE 'PLPYTHON';
>
> SELECT jojo(now());
> works fine but
>
> SELECT jojo(NULL);
> errors out with
> NOTICE:  plpython: in function __plpython_procedure_jojo_49818349:
> plpy.Error: Unknown error in PLy_spi_execute_plan
> ERROR:  Bad timestamp external representation 'None'

NULL arguments were improperly converted to the string 'None' rather than being marked
as NULLs in the third argument to SPI_execp.  The patch is against CVS HEAD.


--
Andrew Bosma <bosma@epigenomix.com>

Attachment

pgsql-patches by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: minor doc / usage fixes
Next
From: Kevin Brown
Date:
Subject: Re: [HACKERS] v7.2.4 bundled ...