Fix incorrect test for whether Perl code is returning undef. This
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 24 Jan 2002 16:53:42 +0000 (16:53 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 24 Jan 2002 16:53:42 +0000 (16:53 +0000)
allows plperl routines to return NULL as intended.

src/pl/plperl/plperl.c

index 99af9213075eda95f4294fd1244d9406f111dcc1..a37f59781f9cf0801fc733520789b775538a81bf 100644 (file)
@@ -33,7 +33,7 @@
  *       ENHANCEMENTS, OR MODIFICATIONS.
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.26 2001/11/05 17:46:39 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.27 2002/01/24 16:53:42 tgl Exp $
  *
  **********************************************************************/
 
@@ -488,9 +488,9 @@ plperl_func_handler(PG_FUNCTION_ARGS)
        if (SPI_finish() != SPI_OK_FINISH)
                elog(ERROR, "plperl: SPI_finish() failed");
 
-       /* XXX is this the approved way to check for an undef result? */
-       if (perlret == &PL_sv_undef)
+       if (!(perlret && SvOK(perlret)))
        {
+               /* return NULL if Perl code returned undef */
                retval = (Datum) 0;
                fcinfo->isnull = true;
        }