Andrew Dunstan wrote:
Tim Bunce just showed me the following oddity:
andrew=# SET SESSION plperl.use_strict = on;
SET
andrew=# SHOW plperl.use_strict;
plperl.use_strict
-------------------
on
(1 row)
andrew=# DO $$ elog(ERROR,"error") $$ language plperl;
ERROR: error at line 1.
CONTEXT: PL/Perl anonymous code block
andrew=# SHOW plperl.use_strict;
plperl.use_strict
-------------------
off
(1 row)
Somehow we have lost the setting, because the first use of plperl,
which called the plperl init code, failed.
It appears that whatever rolls it back forgets to put the GUC setting
back as it was, and now it's lost, which is pretty darn ugly. And you
can now run code which fails the 'strict' tests.
The first thing I think we need to do is move the GUC processing code
out of _PG_init() and into plperl_init_interp(), protected by a flag to
make sure it's only called successfully once. I'm trying to work out a
neat way to put the value back if there is an exception, but it's a bit
ugly.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers