Re: [HACKERS] Fix for bug in plpython bool type conversion - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [HACKERS] Fix for bug in plpython bool type conversion
Date
Msg-id 200701251454.l0PEsIW06569@momjian.us
Whole thread Raw
List pgsql-patches
I have had to reverse out this patch because Py_RETURN_TRUE is only
supported in Python versions >= 2.3, and we support older versions.  I
did add a comment:

*      We would like to use Py_RETURN_TRUE and Py_RETURN_FALSE here for
*      generating SQL from trigger functions, but those are only
*      supported in Python >= 2.3, and we support older
*      versions.  http://docs.python.org/api/boolObjects.html


---------------------------------------------------------------------------

bruce wrote:
>
> Your patch has been added to the PostgreSQL unapplied patches list at:
>
>     http://momjian.postgresql.org/cgi-bin/pgpatches
>
> It will be applied as soon as one of the PostgreSQL committers reviews
> and approves it.
>
> ---------------------------------------------------------------------------
>
>
> Guido Goldstein wrote:
> > Hi!
> >
> > The attached patch fixes a bug in plpython.
> >
> > This bug was found while creating sql from trigger functions
> > written in plpython and later running the generated sql.
> > The problem was that boolean was was silently converted to
> > integer, which is ok for python but fails when the created
> > sql is used.
> >
> > The patch uses the Py_RETURN_xxx macros shown at
> >  http://docs.python.org/api/boolObjects.html .
> >
> > It would be nice if someone could test and comment
> > on the patch.
> >
> > Cheers
> >   Guido
>
> > --- postgresql-8.2.1.orig/src/pl/plpython/plpython.c    2006-11-21 22:51:05.000000000 +0100
> > +++ postgresql-8.2.1/src/pl/plpython/plpython.c    2007-01-17 18:06:58.185497734 +0100
> > @@ -1580,8 +1580,8 @@
> >  PLyBool_FromString(const char *src)
> >  {
> >      if (src[0] == 't')
> > -        return PyInt_FromLong(1);
> > -    return PyInt_FromLong(0);
> > +        Py_RETURN_TRUE;
> > +    Py_RETURN_FALSE;
> >  }
> >
> >  static PyObject *
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: don't forget to increase your free space map settings
>
> --
>   Bruce Momjian   bruce@momjian.us
>   EnterpriseDB    http://www.enterprisedb.com
>
>   + If your life is a hard drive, Christ can be your backup. +

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

pgsql-patches by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Getting rid of warnings
Next
From: Bruce Momjian
Date:
Subject: Re: pg_dumpall -f option