*** pgsql/src/pl/plperl/plperl.c 2008/01/22 20:19:53 1.123.2.4 --- pgsql/src/pl/plperl/plperl.c 2009/06/04 16:00:33 1.123.2.5 *************** *** 1,7 **** /********************************************************************** * plperl.c - perl as a procedural language for PostgreSQL * ! * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.123.2.3 2007/12/01 17:58:48 tgl Exp $ * **********************************************************************/ --- 1,7 ---- /********************************************************************** * 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 $ * **********************************************************************/ *************** plperl_init_interp(void) *** 380,385 **** --- 380,387 ---- "", "-e", PERLBOOT }; + int nargs = 3; + #ifdef WIN32 /* *************** plperl_init_interp(void) *** 422,427 **** --- 424,434 ---- save_time = loc ? pstrdup(loc) : NULL; #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) *************** plperl_init_interp(void) *** 429,435 **** perl_construct(plperl_held_interp); perl_parse(plperl_held_interp, plperl_init_shared_libs, ! 3, embedding, NULL); perl_run(plperl_held_interp); if (interp_state == INTERP_NONE) --- 436,442 ---- perl_construct(plperl_held_interp); perl_parse(plperl_held_interp, plperl_init_shared_libs, ! nargs, embedding, NULL); perl_run(plperl_held_interp); if (interp_state == INTERP_NONE)