Thread: Unbreak plperl building

Unbreak plperl building

From
Alex Kapranoff
Date:
This patch, when applied in src/pl will unbreak plperl in
7.0.2 release. Sorry, if that's fixed ages ago - I don't track
development versions of PostgreSQL.

Patch is just a little bit tested (some valid functions created and
successfully run as well as some erroneous ones created and emitted proper
error messages when used).

My platform is FreeBSD 5.0-CURRENT (with perl 5.6.0 provided in the
base system).

I'm not subscribed to any of pgsql lists, sorry. Cc: please.

*** ./Makefile.orig    Sat Aug 26 16:22:25 2000
--- ./Makefile    Sat Aug 26 16:14:24 2000
***************
*** 20,30 ****
  ifeq ($(USE_TCL), true)
      $(MAKE) -C tcl $@
  endif
  # does't work bjm 2000-04-11
! #ifeq ($(USE_PERL), true)
! #    -$(MAKE) $(MFLAGS) plperl/Makefile
! #    -$(MAKE) $(MFLAGS) -C plperl $@
! #endif

  plperl/Makefile: plperl/Makefile.PL
      cd plperl && $(PERL) Makefile.PL POLLUTE=1
--- 20,32 ----
  ifeq ($(USE_TCL), true)
      $(MAKE) -C tcl $@
  endif
+
  # does't work bjm 2000-04-11
! # works again, 2000-08-26, Alex Kapranoff <kapr@crosswinds.net>
! ifeq ($(USE_PERL), true)
!     -$(MAKE) $(MFLAGS) plperl/Makefile
!     -$(MAKE) $(MFLAGS) -C plperl $@
! endif

  plperl/Makefile: plperl/Makefile.PL
      cd plperl && $(PERL) Makefile.PL POLLUTE=1
*** ./plperl/plperl.c.orig    Sat Aug 26 16:22:49 2000
--- ./plperl/plperl.c    Sat Aug 26 16:03:07 2000
***************
*** 325,337 ****
      count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
      SPAGAIN;

!     if (SvTRUE(GvSV(errgv)))
      {
          POPs;
          PUTBACK;
          FREETMPS;
          LEAVE;
!         elog(ERROR, "creation of function failed : %s", SvPV(GvSV(errgv), na));
      }

      if (count != 1) {
--- 325,337 ----
      count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
      SPAGAIN;

!     if (SvTRUE(ERRSV))
      {
          POPs;
          PUTBACK;
          FREETMPS;
          LEAVE;
!         elog(ERROR, "creation of function failed : %s", SvPV_nolen(ERRSV));
      }

      if (count != 1) {
***************
*** 441,453 ****
          elog(ERROR, "plperl : didn't get a return item from function");
      }

!     if (SvTRUE(GvSV(errgv)))
      {
          POPs;
          PUTBACK;
          FREETMPS;
          LEAVE;
!         elog(ERROR, "plperl : error from function : %s", SvPV(GvSV(errgv), na));
      }

      retval = newSVsv(POPs);
--- 441,453 ----
          elog(ERROR, "plperl : didn't get a return item from function");
      }

!     if (SvTRUE(ERRSV))
      {
          POPs;
          PUTBACK;
          FREETMPS;
          LEAVE;
!         elog(ERROR, "plperl : error from function : %s", SvPV_nolen(ERRSV));
      }

      retval = newSVsv(POPs);
***************
*** 651,657 ****
          elog(ERROR, "plperl: SPI_finish() failed");

      retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
!         (SvPV(perlret, na),
           prodesc->result_in_elem,
           prodesc->result_in_len);

--- 651,657 ----
          elog(ERROR, "plperl: SPI_finish() failed");

      retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
!         (SvPV_nolen(perlret),
           prodesc->result_in_elem,
           prodesc->result_in_len);

***************
*** 2189,2194 ****
              sv_catpvf(output, "'%s' => undef,", attname);
      }
      sv_catpv(output, "}");
!     output = perl_eval_pv(SvPV(output, na), TRUE);
      return output;
  }
--- 2189,2194 ----
              sv_catpvf(output, "'%s' => undef,", attname);
      }
      sv_catpv(output, "}");
!     output = perl_eval_pv(SvPV_nolen(output), TRUE);
      return output;
  }

--
Alex Kapranoff,                              Voice: +7(0832)791845.
127 days till brand new millenium...

Re: Unbreak plperl building

From
Tom Lane
Date:
Alex Kapranoff <alex@kapran.bitmcnit.bryansk.su> writes:
> This patch, when applied in src/pl will unbreak plperl in
> 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> development versions of PostgreSQL.

The issue isn't so much that it's "broken" as that we've seen severe
portability problems with it --- it doesn't work on all platforms or
all releases of Perl.  What do your proposed changes do for or against
that issue?

            regards, tom lane

Re: Unbreak plperl building

From
Alex Kapranoff
Date:
On Mon, Aug 28, 2000 at 10:00:36AM -0400, Tom Lane wrote:
> Alex Kapranoff <alex@kapran.bitmcnit.bryansk.su> writes:
> > This patch, when applied in src/pl will unbreak plperl in
> > 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> > development versions of PostgreSQL.
>
> The issue isn't so much that it's "broken" as that we've seen severe
> portability problems with it --- it doesn't work on all platforms or
> all releases of Perl.  What do your proposed changes do for or against
> that issue?

  I really don't have many platforms for testing available here.  I'll
try FreeBSD 4.1-STABLE and probably 3.5-STABLE.  Those come with older
(and currently much more used) perl 5.005.  No Linuxen of whatever
else, sorry.

  These changes work around some nasty compile-time errors.  The author
either had a very weird distribution of perl (home-made?) or
maybe just didn't have time to finish work (which is strange as one
can see from "complexity" of my patch).

  Anyway, there aren't so many releases of perl available, really.
5.005 and 5.6.0 are surely the only ones to care about.

  I just loved the idea of writing functions in Perl, and it works for
me now. Someone is likely to want it too, so I posted. Thanks for the
wonderful PostreeSQL, folks!

--
Alex Kapranoff,                              Voice: +7(0832)791845.
125 days till brand new millenium...

Re: Unbreak plperl building

From
Bruce Momjian
Date:
I have applied this and re-enabled plperl compilation.  Thanks.


> This patch, when applied in src/pl will unbreak plperl in
> 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> development versions of PostgreSQL.
>
> Patch is just a little bit tested (some valid functions created and
> successfully run as well as some erroneous ones created and emitted proper
> error messages when used).
>
> My platform is FreeBSD 5.0-CURRENT (with perl 5.6.0 provided in the
> base system).
>
> I'm not subscribed to any of pgsql lists, sorry. Cc: please.
>
> *** ./Makefile.orig    Sat Aug 26 16:22:25 2000
> --- ./Makefile    Sat Aug 26 16:14:24 2000
> ***************
> *** 20,30 ****
>   ifeq ($(USE_TCL), true)
>       $(MAKE) -C tcl $@
>   endif
>   # does't work bjm 2000-04-11
> ! #ifeq ($(USE_PERL), true)
> ! #    -$(MAKE) $(MFLAGS) plperl/Makefile
> ! #    -$(MAKE) $(MFLAGS) -C plperl $@
> ! #endif
>
>   plperl/Makefile: plperl/Makefile.PL
>       cd plperl && $(PERL) Makefile.PL POLLUTE=1
> --- 20,32 ----
>   ifeq ($(USE_TCL), true)
>       $(MAKE) -C tcl $@
>   endif
> +
>   # does't work bjm 2000-04-11
> ! # works again, 2000-08-26, Alex Kapranoff <kapr@crosswinds.net>
> ! ifeq ($(USE_PERL), true)
> !     -$(MAKE) $(MFLAGS) plperl/Makefile
> !     -$(MAKE) $(MFLAGS) -C plperl $@
> ! endif
>
>   plperl/Makefile: plperl/Makefile.PL
>       cd plperl && $(PERL) Makefile.PL POLLUTE=1
> *** ./plperl/plperl.c.orig    Sat Aug 26 16:22:49 2000
> --- ./plperl/plperl.c    Sat Aug 26 16:03:07 2000
> ***************
> *** 325,337 ****
>       count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
>       SPAGAIN;
>
> !     if (SvTRUE(GvSV(errgv)))
>       {
>           POPs;
>           PUTBACK;
>           FREETMPS;
>           LEAVE;
> !         elog(ERROR, "creation of function failed : %s", SvPV(GvSV(errgv), na));
>       }
>
>       if (count != 1) {
> --- 325,337 ----
>       count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
>       SPAGAIN;
>
> !     if (SvTRUE(ERRSV))
>       {
>           POPs;
>           PUTBACK;
>           FREETMPS;
>           LEAVE;
> !         elog(ERROR, "creation of function failed : %s", SvPV_nolen(ERRSV));
>       }
>
>       if (count != 1) {
> ***************
> *** 441,453 ****
>           elog(ERROR, "plperl : didn't get a return item from function");
>       }
>
> !     if (SvTRUE(GvSV(errgv)))
>       {
>           POPs;
>           PUTBACK;
>           FREETMPS;
>           LEAVE;
> !         elog(ERROR, "plperl : error from function : %s", SvPV(GvSV(errgv), na));
>       }
>
>       retval = newSVsv(POPs);
> --- 441,453 ----
>           elog(ERROR, "plperl : didn't get a return item from function");
>       }
>
> !     if (SvTRUE(ERRSV))
>       {
>           POPs;
>           PUTBACK;
>           FREETMPS;
>           LEAVE;
> !         elog(ERROR, "plperl : error from function : %s", SvPV_nolen(ERRSV));
>       }
>
>       retval = newSVsv(POPs);
> ***************
> *** 651,657 ****
>           elog(ERROR, "plperl: SPI_finish() failed");
>
>       retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
> !         (SvPV(perlret, na),
>            prodesc->result_in_elem,
>            prodesc->result_in_len);
>
> --- 651,657 ----
>           elog(ERROR, "plperl: SPI_finish() failed");
>
>       retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
> !         (SvPV_nolen(perlret),
>            prodesc->result_in_elem,
>            prodesc->result_in_len);
>
> ***************
> *** 2189,2194 ****
>               sv_catpvf(output, "'%s' => undef,", attname);
>       }
>       sv_catpv(output, "}");
> !     output = perl_eval_pv(SvPV(output, na), TRUE);
>       return output;
>   }
> --- 2189,2194 ----
>               sv_catpvf(output, "'%s' => undef,", attname);
>       }
>       sv_catpv(output, "}");
> !     output = perl_eval_pv(SvPV_nolen(output), TRUE);
>       return output;
>   }
>
> --
> Alex Kapranoff,                              Voice: +7(0832)791845.
> 127 days till brand new millenium...
>


--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: Unbreak plperl building

From
Bruce Momjian
Date:
Tom, seems like this patch helps plperl, so I applied it.

> On Mon, Aug 28, 2000 at 10:00:36AM -0400, Tom Lane wrote:
> > Alex Kapranoff <alex@kapran.bitmcnit.bryansk.su> writes:
> > > This patch, when applied in src/pl will unbreak plperl in
> > > 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> > > development versions of PostgreSQL.
> >
> > The issue isn't so much that it's "broken" as that we've seen severe
> > portability problems with it --- it doesn't work on all platforms or
> > all releases of Perl.  What do your proposed changes do for or against
> > that issue?
>
>   I really don't have many platforms for testing available here.  I'll
> try FreeBSD 4.1-STABLE and probably 3.5-STABLE.  Those come with older
> (and currently much more used) perl 5.005.  No Linuxen of whatever
> else, sorry.
>
>   These changes work around some nasty compile-time errors.  The author
> either had a very weird distribution of perl (home-made?) or
> maybe just didn't have time to finish work (which is strange as one
> can see from "complexity" of my patch).
>
>   Anyway, there aren't so many releases of perl available, really.
> 5.005 and 5.6.0 are surely the only ones to care about.
>
>   I just loved the idea of writing functions in Perl, and it works for
> me now. Someone is likely to want it too, so I posted. Thanks for the
> wonderful PostreeSQL, folks!
>
> --
> Alex Kapranoff,                              Voice: +7(0832)791845.
> 125 days till brand new millenium...
>


--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: Unbreak plperl building

From
Alex Kapranoff
Date:
On Tue, Sep 12, 2000 at 12:28:45AM -0400, Bruce Momjian wrote:
> I have applied this and re-enabled plperl compilation.  Thanks.

  There were bad experiences with plperl on a RH with perl 5.004
reported on this list. With my patch applied.

> > This patch, when applied in src/pl will unbreak plperl in
> > 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> > development versions of PostgreSQL.
[skip]

--
Alex Kapranoff,                              Voice: +7(0832)791845
110 days till brand new millenium...

Re: Unbreak plperl building

From
Peter Eisentraut
Date:
Still doesn't work here. I have Redhat 5.2, fairly average. Please disable
it.

Bruce Momjian writes:

> I have applied this and re-enabled plperl compilation.  Thanks.
>
>
> > This patch, when applied in src/pl will unbreak plperl in
> > 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> > development versions of PostgreSQL.
> >
> > Patch is just a little bit tested (some valid functions created and
> > successfully run as well as some erroneous ones created and emitted proper
> > error messages when used).
> >
> > My platform is FreeBSD 5.0-CURRENT (with perl 5.6.0 provided in the
> > base system).
> >
> > I'm not subscribed to any of pgsql lists, sorry. Cc: please.
> >
> > *** ./Makefile.orig    Sat Aug 26 16:22:25 2000
> > --- ./Makefile    Sat Aug 26 16:14:24 2000
> > ***************
> > *** 20,30 ****
> >   ifeq ($(USE_TCL), true)
> >       $(MAKE) -C tcl $@
> >   endif
> >   # does't work bjm 2000-04-11
> > ! #ifeq ($(USE_PERL), true)
> > ! #    -$(MAKE) $(MFLAGS) plperl/Makefile
> > ! #    -$(MAKE) $(MFLAGS) -C plperl $@
> > ! #endif
> >
> >   plperl/Makefile: plperl/Makefile.PL
> >       cd plperl && $(PERL) Makefile.PL POLLUTE=1
> > --- 20,32 ----
> >   ifeq ($(USE_TCL), true)
> >       $(MAKE) -C tcl $@
> >   endif
> > +
> >   # does't work bjm 2000-04-11
> > ! # works again, 2000-08-26, Alex Kapranoff <kapr@crosswinds.net>
> > ! ifeq ($(USE_PERL), true)
> > !     -$(MAKE) $(MFLAGS) plperl/Makefile
> > !     -$(MAKE) $(MFLAGS) -C plperl $@
> > ! endif
> >
> >   plperl/Makefile: plperl/Makefile.PL
> >       cd plperl && $(PERL) Makefile.PL POLLUTE=1
> > *** ./plperl/plperl.c.orig    Sat Aug 26 16:22:49 2000
> > --- ./plperl/plperl.c    Sat Aug 26 16:03:07 2000
> > ***************
> > *** 325,337 ****
> >       count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
> >       SPAGAIN;
> >
> > !     if (SvTRUE(GvSV(errgv)))
> >       {
> >           POPs;
> >           PUTBACK;
> >           FREETMPS;
> >           LEAVE;
> > !         elog(ERROR, "creation of function failed : %s", SvPV(GvSV(errgv), na));
> >       }
> >
> >       if (count != 1) {
> > --- 325,337 ----
> >       count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
> >       SPAGAIN;
> >
> > !     if (SvTRUE(ERRSV))
> >       {
> >           POPs;
> >           PUTBACK;
> >           FREETMPS;
> >           LEAVE;
> > !         elog(ERROR, "creation of function failed : %s", SvPV_nolen(ERRSV));
> >       }
> >
> >       if (count != 1) {
> > ***************
> > *** 441,453 ****
> >           elog(ERROR, "plperl : didn't get a return item from function");
> >       }
> >
> > !     if (SvTRUE(GvSV(errgv)))
> >       {
> >           POPs;
> >           PUTBACK;
> >           FREETMPS;
> >           LEAVE;
> > !         elog(ERROR, "plperl : error from function : %s", SvPV(GvSV(errgv), na));
> >       }
> >
> >       retval = newSVsv(POPs);
> > --- 441,453 ----
> >           elog(ERROR, "plperl : didn't get a return item from function");
> >       }
> >
> > !     if (SvTRUE(ERRSV))
> >       {
> >           POPs;
> >           PUTBACK;
> >           FREETMPS;
> >           LEAVE;
> > !         elog(ERROR, "plperl : error from function : %s", SvPV_nolen(ERRSV));
> >       }
> >
> >       retval = newSVsv(POPs);
> > ***************
> > *** 651,657 ****
> >           elog(ERROR, "plperl: SPI_finish() failed");
> >
> >       retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
> > !         (SvPV(perlret, na),
> >            prodesc->result_in_elem,
> >            prodesc->result_in_len);
> >
> > --- 651,657 ----
> >           elog(ERROR, "plperl: SPI_finish() failed");
> >
> >       retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
> > !         (SvPV_nolen(perlret),
> >            prodesc->result_in_elem,
> >            prodesc->result_in_len);
> >
> > ***************
> > *** 2189,2194 ****
> >               sv_catpvf(output, "'%s' => undef,", attname);
> >       }
> >       sv_catpv(output, "}");
> > !     output = perl_eval_pv(SvPV(output, na), TRUE);
> >       return output;
> >   }
> > --- 2189,2194 ----
> >               sv_catpvf(output, "'%s' => undef,", attname);
> >       }
> >       sv_catpv(output, "}");
> > !     output = perl_eval_pv(SvPV_nolen(output), TRUE);
> >       return output;
> >   }
> >
> > --
> > Alex Kapranoff,                              Voice: +7(0832)791845.
> > 127 days till brand new millenium...
> >
>
>
>

--
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/



Re: Unbreak plperl building

From
Bruce Momjian
Date:
> Still doesn't work here. I have Redhat 5.2, fairly average. Please disable
> it.

I have again disabled plperl.


>
> Bruce Momjian writes:
>
> > I have applied this and re-enabled plperl compilation.  Thanks.
> >
> >
> > > This patch, when applied in src/pl will unbreak plperl in
> > > 7.0.2 release. Sorry, if that's fixed ages ago - I don't track
> > > development versions of PostgreSQL.
> > >
> > > Patch is just a little bit tested (some valid functions created and
> > > successfully run as well as some erroneous ones created and emitted proper
> > > error messages when used).
> > >
> > > My platform is FreeBSD 5.0-CURRENT (with perl 5.6.0 provided in the
> > > base system).
> > >
> > > I'm not subscribed to any of pgsql lists, sorry. Cc: please.
> > >
> > > *** ./Makefile.orig    Sat Aug 26 16:22:25 2000
> > > --- ./Makefile    Sat Aug 26 16:14:24 2000
> > > ***************
> > > *** 20,30 ****
> > >   ifeq ($(USE_TCL), true)
> > >       $(MAKE) -C tcl $@
> > >   endif
> > >   # does't work bjm 2000-04-11
> > > ! #ifeq ($(USE_PERL), true)
> > > ! #    -$(MAKE) $(MFLAGS) plperl/Makefile
> > > ! #    -$(MAKE) $(MFLAGS) -C plperl $@
> > > ! #endif
> > >
> > >   plperl/Makefile: plperl/Makefile.PL
> > >       cd plperl && $(PERL) Makefile.PL POLLUTE=1
> > > --- 20,32 ----
> > >   ifeq ($(USE_TCL), true)
> > >       $(MAKE) -C tcl $@
> > >   endif
> > > +
> > >   # does't work bjm 2000-04-11
> > > ! # works again, 2000-08-26, Alex Kapranoff <kapr@crosswinds.net>
> > > ! ifeq ($(USE_PERL), true)
> > > !     -$(MAKE) $(MFLAGS) plperl/Makefile
> > > !     -$(MAKE) $(MFLAGS) -C plperl $@
> > > ! endif
> > >
> > >   plperl/Makefile: plperl/Makefile.PL
> > >       cd plperl && $(PERL) Makefile.PL POLLUTE=1
> > > *** ./plperl/plperl.c.orig    Sat Aug 26 16:22:49 2000
> > > --- ./plperl/plperl.c    Sat Aug 26 16:03:07 2000
> > > ***************
> > > *** 325,337 ****
> > >       count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
> > >       SPAGAIN;
> > >
> > > !     if (SvTRUE(GvSV(errgv)))
> > >       {
> > >           POPs;
> > >           PUTBACK;
> > >           FREETMPS;
> > >           LEAVE;
> > > !         elog(ERROR, "creation of function failed : %s", SvPV(GvSV(errgv), na));
> > >       }
> > >
> > >       if (count != 1) {
> > > --- 325,337 ----
> > >       count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
> > >       SPAGAIN;
> > >
> > > !     if (SvTRUE(ERRSV))
> > >       {
> > >           POPs;
> > >           PUTBACK;
> > >           FREETMPS;
> > >           LEAVE;
> > > !         elog(ERROR, "creation of function failed : %s", SvPV_nolen(ERRSV));
> > >       }
> > >
> > >       if (count != 1) {
> > > ***************
> > > *** 441,453 ****
> > >           elog(ERROR, "plperl : didn't get a return item from function");
> > >       }
> > >
> > > !     if (SvTRUE(GvSV(errgv)))
> > >       {
> > >           POPs;
> > >           PUTBACK;
> > >           FREETMPS;
> > >           LEAVE;
> > > !         elog(ERROR, "plperl : error from function : %s", SvPV(GvSV(errgv), na));
> > >       }
> > >
> > >       retval = newSVsv(POPs);
> > > --- 441,453 ----
> > >           elog(ERROR, "plperl : didn't get a return item from function");
> > >       }
> > >
> > > !     if (SvTRUE(ERRSV))
> > >       {
> > >           POPs;
> > >           PUTBACK;
> > >           FREETMPS;
> > >           LEAVE;
> > > !         elog(ERROR, "plperl : error from function : %s", SvPV_nolen(ERRSV));
> > >       }
> > >
> > >       retval = newSVsv(POPs);
> > > ***************
> > > *** 651,657 ****
> > >           elog(ERROR, "plperl: SPI_finish() failed");
> > >
> > >       retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
> > > !         (SvPV(perlret, na),
> > >            prodesc->result_in_elem,
> > >            prodesc->result_in_len);
> > >
> > > --- 651,657 ----
> > >           elog(ERROR, "plperl: SPI_finish() failed");
> > >
> > >       retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
> > > !         (SvPV_nolen(perlret),
> > >            prodesc->result_in_elem,
> > >            prodesc->result_in_len);
> > >
> > > ***************
> > > *** 2189,2194 ****
> > >               sv_catpvf(output, "'%s' => undef,", attname);
> > >       }
> > >       sv_catpv(output, "}");
> > > !     output = perl_eval_pv(SvPV(output, na), TRUE);
> > >       return output;
> > >   }
> > > --- 2189,2194 ----
> > >               sv_catpvf(output, "'%s' => undef,", attname);
> > >       }
> > >       sv_catpv(output, "}");
> > > !     output = perl_eval_pv(SvPV_nolen(output), TRUE);
> > >       return output;
> > >   }
> > >
> > > --
> > > Alex Kapranoff,                              Voice: +7(0832)791845.
> > > 127 days till brand new millenium...
> > >
> >
> >
> >
>
> --
> Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/
>
>
>


--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026