Commit 5c6fa5ee authored by Bruce Momjian's avatar Bruce Momjian

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).

Alex Kapranoff
parent 879639b5
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# #
# Copyright (c) 1994, Regents of the University of California # Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/pl/Makefile,v 1.12 2000/08/31 16:12:09 petere Exp $ # $Header: /cvsroot/pgsql/src/pl/Makefile,v 1.13 2000/09/12 04:28:30 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -18,10 +18,9 @@ ifeq ($(USE_TCL), true) ...@@ -18,10 +18,9 @@ ifeq ($(USE_TCL), true)
DIRS += tcl DIRS += tcl
endif endif
# Disabled because it doesn't work ifeq ($(with_perl), yes)
#ifeq ($(with_perl), yes) DIRS += plperl
#DIRS += plperl endif
#endif
all install installdirs uninstall depend distprep: all install installdirs uninstall depend distprep:
@for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
* ENHANCEMENTS, OR MODIFICATIONS. * ENHANCEMENTS, OR MODIFICATIONS.
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.12 2000/07/05 23:11:55 tgl Exp $ * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.13 2000/09/12 04:28:30 momjian Exp $
* *
**********************************************************************/ **********************************************************************/
...@@ -324,13 +324,13 @@ plperl_create_sub(char * s) ...@@ -324,13 +324,13 @@ plperl_create_sub(char * s)
count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR); count = perl_call_pv("mksafefunc", G_SCALAR | G_EVAL | G_KEEPERR);
SPAGAIN; SPAGAIN;
if (SvTRUE(GvSV(errgv))) if (SvTRUE(ERRSV))
{ {
POPs; POPs;
PUTBACK; PUTBACK;
FREETMPS; FREETMPS;
LEAVE; LEAVE;
elog(ERROR, "creation of function failed : %s", SvPV(GvSV(errgv), na)); elog(ERROR, "creation of function failed : %s", SvPV_nolen(ERRSV));
} }
if (count != 1) { if (count != 1) {
...@@ -449,13 +449,13 @@ plperl_call_perl_func(plperl_proc_desc * desc, FunctionCallInfo fcinfo) ...@@ -449,13 +449,13 @@ plperl_call_perl_func(plperl_proc_desc * desc, FunctionCallInfo fcinfo)
elog(ERROR, "plperl : didn't get a return item from function"); elog(ERROR, "plperl : didn't get a return item from function");
} }
if (SvTRUE(GvSV(errgv))) if (SvTRUE(ERRSV))
{ {
POPs; POPs;
PUTBACK; PUTBACK;
FREETMPS; FREETMPS;
LEAVE; LEAVE;
elog(ERROR, "plperl : error from function : %s", SvPV(GvSV(errgv), na)); elog(ERROR, "plperl : error from function : %s", SvPV_nolen(ERRSV));
} }
retval = newSVsv(POPs); retval = newSVsv(POPs);
...@@ -661,7 +661,7 @@ plperl_func_handler(PG_FUNCTION_ARGS) ...@@ -661,7 +661,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
else else
{ {
retval = FunctionCall3(&prodesc->result_in_func, retval = FunctionCall3(&prodesc->result_in_func,
PointerGetDatum(SvPV(perlret, na)), PointerGetDatum(SvPV_nolen(perlret)),
ObjectIdGetDatum(prodesc->result_in_elem), ObjectIdGetDatum(prodesc->result_in_elem),
Int32GetDatum(prodesc->result_in_len)); Int32GetDatum(prodesc->result_in_len));
} }
...@@ -2184,6 +2184,6 @@ plperl_build_tuple_argument(HeapTuple tuple, TupleDesc tupdesc) ...@@ -2184,6 +2184,6 @@ plperl_build_tuple_argument(HeapTuple tuple, TupleDesc tupdesc)
sv_catpvf(output, "'%s' => undef,", attname); sv_catpvf(output, "'%s' => undef,", attname);
} }
sv_catpv(output, "}"); sv_catpv(output, "}");
output = perl_eval_pv(SvPV(output, na), TRUE); output = perl_eval_pv(SvPV_nolen(output), TRUE);
return output; return output;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment