Re: Unbreak plperl building - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: Unbreak plperl building
Date
Msg-id 200009120428.AAA10308@candle.pha.pa.us
Whole thread Raw
In response to Unbreak plperl building  (Alex Kapranoff <alex@kapran.bitmcnit.bryansk.su>)
Responses Re: Unbreak plperl building
Re: Unbreak plperl building
List pgsql-patches
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

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: disallow LOCK on a view
Next
From: Bruce Momjian
Date:
Subject: Re: Unbreak plperl building