|
|
|
|
@ -1,7 +1,7 @@ |
|
|
|
|
/**********************************************************************
|
|
|
|
|
* plperl.c - perl as a procedural language for PostgreSQL |
|
|
|
|
* |
|
|
|
|
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.146 2009/02/20 10:39:19 petere Exp $ |
|
|
|
|
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.147 2009/06/04 15:59:55 adunstan Exp $ |
|
|
|
|
* |
|
|
|
|
**********************************************************************/ |
|
|
|
|
|
|
|
|
|
@ -399,6 +399,8 @@ plperl_init_interp(void) |
|
|
|
|
"", "-e", PERLBOOT |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
int nargs = 3; |
|
|
|
|
|
|
|
|
|
#ifdef WIN32 |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
@ -442,13 +444,19 @@ plperl_init_interp(void) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef PERL_SYS_INIT3 |
|
|
|
|
/* only call this the first time through, as per perlembed man page */ |
|
|
|
|
if (interp_state == INTERP_NONE) |
|
|
|
|
PERL_SYS_INIT3(&nargs, (char ***) &embedding, NULL); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
plperl_held_interp = perl_alloc(); |
|
|
|
|
if (!plperl_held_interp) |
|
|
|
|
elog(ERROR, "could not allocate Perl interpreter"); |
|
|
|
|
|
|
|
|
|
perl_construct(plperl_held_interp); |
|
|
|
|
perl_parse(plperl_held_interp, plperl_init_shared_libs, |
|
|
|
|
3, embedding, NULL); |
|
|
|
|
nargs, embedding, NULL); |
|
|
|
|
perl_run(plperl_held_interp); |
|
|
|
|
|
|
|
|
|
if (interp_state == INTERP_NONE) |
|
|
|
|
|