mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
Initialise perl library as documented in perl API. Backpatch to release 7.4.
This commit is contained in:
parent
6432580fdb
commit
7920e7cc7f
@ -1,7 +1,7 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* plperl.c - perl as a procedural language for PostgreSQL
|
* plperl.c - perl as a procedural language for PostgreSQL
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.123.2.4 2008/01/22 20:19:53 adunstan Exp $
|
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.123.2.5 2009/06/04 16:00:33 adunstan Exp $
|
||||||
*
|
*
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
@ -380,6 +380,8 @@ plperl_init_interp(void)
|
|||||||
"", "-e", PERLBOOT
|
"", "-e", PERLBOOT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int nargs = 3;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -422,6 +424,11 @@ plperl_init_interp(void)
|
|||||||
save_time = loc ? pstrdup(loc) : NULL;
|
save_time = loc ? pstrdup(loc) : NULL;
|
||||||
#endif
|
#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();
|
plperl_held_interp = perl_alloc();
|
||||||
if (!plperl_held_interp)
|
if (!plperl_held_interp)
|
||||||
@ -429,7 +436,7 @@ plperl_init_interp(void)
|
|||||||
|
|
||||||
perl_construct(plperl_held_interp);
|
perl_construct(plperl_held_interp);
|
||||||
perl_parse(plperl_held_interp, plperl_init_shared_libs,
|
perl_parse(plperl_held_interp, plperl_init_shared_libs,
|
||||||
3, embedding, NULL);
|
nargs, embedding, NULL);
|
||||||
perl_run(plperl_held_interp);
|
perl_run(plperl_held_interp);
|
||||||
|
|
||||||
if (interp_state == INTERP_NONE)
|
if (interp_state == INTERP_NONE)
|
||||||
|
Loading…
Reference in New Issue
Block a user