aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2005-07-06 22:33:39 +0000
committerBruce Momjian <bruce@momjian.us>2005-07-06 22:33:39 +0000
commit77838f73801f11f53936af7f924495123fd06fad (patch)
tree3ec5c55e1e1bd4f5241c6c6ab9132a3db3eee7e1 /src
parent970bb03c3c6e485ed0f66c2f2c9b9c6c9123e09a (diff)
downloadpostgresql-77838f73801f11f53936af7f924495123fd06fad.tar.gz
postgresql-77838f73801f11f53936af7f924495123fd06fad.zip
Currently, nonfatal warnings are not trapped (as they should be) by
plperl - the attached small patch remedies that omission. Andrew Dunstan
Diffstat (limited to 'src')
-rw-r--r--src/pl/plperl/GNUmakefile4
-rw-r--r--src/pl/plperl/plperl.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile
index 20dd7320700..e9334d033ee 100644
--- a/src/pl/plperl/GNUmakefile
+++ b/src/pl/plperl/GNUmakefile
@@ -1,5 +1,5 @@
# Makefile for PL/Perl
-# $PostgreSQL: pgsql/src/pl/plperl/GNUmakefile,v 1.22 2005/05/24 17:07:41 tgl Exp $
+# $PostgreSQL: pgsql/src/pl/plperl/GNUmakefile,v 1.23 2005/07/06 22:33:39 momjian Exp $
subdir = src/pl/plperl
top_builddir = ../../..
@@ -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
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index eaee0f79722..f05197ea4e9 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -33,7 +33,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.79 2005/07/03 21:56:16 tgl Exp $
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.80 2005/07/06 22:33:39 momjian Exp $
*
**********************************************************************/
@@ -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] } ]); }"
};