Currently, nonfatal warnings are not trapped (as they should be) by
authorBruce Momjian <bruce@momjian.us>
Wed, 6 Jul 2005 22:33:39 +0000 (22:33 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 6 Jul 2005 22:33:39 +0000 (22:33 +0000)
plperl - the attached small patch remedies that omission.

Andrew Dunstan

src/pl/plperl/GNUmakefile
src/pl/plperl/plperl.c

index 71a363fe8f38c589311fdf633874d83db402781c..96ee1f082870ef2419f1c49c7ebd6dfdb4037a81 100644 (file)
@@ -37,7 +37,7 @@ OBJS = plperl.o spi_internal.o SPI.o
 SHLIB_LINK = $(perl_embed_ldflags) $(BE_DLLLIBS)
 
 REGRESS_OPTS = --dbname=$(PL_TESTDB) --load-language=plperl
-REGRESS = plperl plperl_trigger plperl_shared
+REGRESS = plperl plperl_trigger plperl_shared plperl_elog
 
 include $(top_srcdir)/src/Makefile.shlib
 
index 6f41f0f3cdc02c041f64123a2221edb03f29cdc2..00024cfe300d04c48d53d89e19d45abb26952da7 100644 (file)
@@ -190,6 +190,8 @@ plperl_init_interp(void)
                "", "-e",
                /* all one string follows (no commas please) */
                "SPI::bootstrap(); use vars qw(%_SHARED);"
+               "sub ::plperl_warn { my $msg = shift; &elog(&NOTICE, $msg); } "
+               "$SIG{__WARN__} = \\&::plperl_warn; "
                "sub ::mkunsafefunc {return eval(qq[ sub { $_[0] $_[1] } ]); }"
        };
 
@@ -197,6 +199,8 @@ plperl_init_interp(void)
                "", "-e",
                /* all one string follows (no commas please) */
                "SPI::bootstrap(); use vars qw(%_SHARED);"
+               "sub ::plperl_warn { my $msg = shift; &elog(&NOTICE, $msg); } "
+               "$SIG{__WARN__} = \\&::plperl_warn; "
                "sub ::mkunsafefunc {return eval("
                "qq[ sub { use strict; $_[0] $_[1] } ]); }"
        };