aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pl/plperl/SPI.xs18
-rw-r--r--src/pl/plperl/eloglvl.c23
-rw-r--r--src/pl/plperl/eloglvl.h15
-rw-r--r--src/pl/plperl/plperl.c4
-rw-r--r--src/pl/plpgsql/src/gram.y17
-rw-r--r--src/pl/plpgsql/src/scan.l5
-rw-r--r--src/pl/plpython/error.expected6
-rw-r--r--src/pl/plpython/feature.expected2
-rw-r--r--src/pl/plpython/plpython.c46
-rw-r--r--src/pl/tcl/pltcl.c10
10 files changed, 111 insertions, 35 deletions
diff --git a/src/pl/plperl/SPI.xs b/src/pl/plperl/SPI.xs
index 451714ce0e8..61f59fa43c7 100644
--- a/src/pl/plperl/SPI.xs
+++ b/src/pl/plperl/SPI.xs
@@ -55,17 +55,25 @@ elog_elog(level, message)
int level
char* message
CODE:
- if (level > 0)
- return;
- else
- elog(level, message);
+ elog(level, message);
int
elog_DEBUG()
int
-elog_ERROR()
+elog_LOG()
+
+int
+elog_INFO()
int
elog_NOTICE()
+
+int
+elog_WARNING()
+
+int
+elog_ERROR()
+
+
diff --git a/src/pl/plperl/eloglvl.c b/src/pl/plperl/eloglvl.c
index 23289479cd5..a0da01a2f02 100644
--- a/src/pl/plperl/eloglvl.c
+++ b/src/pl/plperl/eloglvl.c
@@ -13,13 +13,19 @@
int
elog_DEBUG(void)
{
+ return DEBUG1;
+}
+
+int
+elog_LOG(void)
+{
return LOG;
}
int
-elog_ERROR(void)
+elog_INFO(void)
{
- return ERROR;
+ return INFO;
}
int
@@ -27,3 +33,16 @@ elog_NOTICE(void)
{
return NOTICE;
}
+
+int
+elog_WARNING(void)
+{
+ return WARNING;
+}
+
+int
+elog_ERROR(void)
+{
+ return ERROR;
+}
+
diff --git a/src/pl/plperl/eloglvl.h b/src/pl/plperl/eloglvl.h
index c07cd5b5d49..742b5e6434b 100644
--- a/src/pl/plperl/eloglvl.h
+++ b/src/pl/plperl/eloglvl.h
@@ -1,8 +1,13 @@
-int
- elog_DEBUG(void);
+int elog_DEBUG(void);
-int
- elog_ERROR(void);
+int elog_LOG(void);
+
+int elog_INFO(void);
+
+int elog_NOTICE(void);
+
+int elog_WARNING(void);
+
+int elog_ERROR(void);
-int elog_NOTICE(void);
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index c6d5875b7e3..5ba80b7b32c 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -33,7 +33,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.28 2002/01/24 21:40:44 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.29 2002/03/06 18:50:26 momjian Exp $
*
**********************************************************************/
@@ -210,7 +210,7 @@ plperl_init_interp(void)
*/
"require Safe; SPI::bootstrap();"
"sub ::mksafefunc { my $x = new Safe; $x->permit_only(':default');$x->permit(':base_math');"
- "$x->share(qw[&elog &DEBUG &NOTICE &ERROR]);"
+ "$x->share(qw[&elog &DEBUG &LOG &INFO &NOTICE &WARNING &ERROR]);"
" return $x->reval(qq[sub { $_[0] }]); }"
"sub ::mkunsafefunc {return eval(qq[ sub { $_[0] } ]); }"
};
diff --git a/src/pl/plpgsql/src/gram.y b/src/pl/plpgsql/src/gram.y
index 38544b21081..a1433a90227 100644
--- a/src/pl/plpgsql/src/gram.y
+++ b/src/pl/plpgsql/src/gram.y
@@ -4,7 +4,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.30 2002/03/02 21:39:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/gram.y,v 1.31 2002/03/06 18:50:29 momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -161,8 +161,10 @@ static PLpgSQL_expr *make_tupret_expr(PLpgSQL_row *row);
%token K_GET
%token K_IF
%token K_IN
+%token K_INFO
%token K_INTO
%token K_IS
+%token K_LOG
%token K_LOOP
%token K_NOT
%token K_NOTICE
@@ -180,6 +182,7 @@ static PLpgSQL_expr *make_tupret_expr(PLpgSQL_row *row);
%token K_THEN
%token K_TO
%token K_TYPE
+%token K_WARNING
%token K_WHEN
%token K_WHILE
@@ -1201,10 +1204,22 @@ raise_level : K_EXCEPTION
{
$$ = ERROR;
}
+ | K_WARNING
+ {
+ $$ = WARNING;
+ }
| K_NOTICE
{
$$ = NOTICE;
}
+ | K_INFO
+ {
+ $$ = INFO;
+ }
+ | K_LOG
+ {
+ $$ = LOG;
+ }
| K_DEBUG
{
$$ = DEBUG5;
diff --git a/src/pl/plpgsql/src/scan.l b/src/pl/plpgsql/src/scan.l
index 49191fa106f..a9f69975000 100644
--- a/src/pl/plpgsql/src/scan.l
+++ b/src/pl/plpgsql/src/scan.l
@@ -4,7 +4,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/scan.l,v 1.16 2001/10/09 15:59:56 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/scan.l,v 1.17 2002/03/06 18:50:29 momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -117,8 +117,10 @@ from { return K_FROM; }
get { return K_GET; }
if { return K_IF; }
in { return K_IN; }
+info { return K_INFO; }
into { return K_INTO; }
is { return K_IS; }
+log { return K_LOG; }
loop { return K_LOOP; }
not { return K_NOT; }
notice { return K_NOTICE; }
@@ -136,6 +138,7 @@ select { return K_SELECT; }
then { return K_THEN; }
to { return K_TO; }
type { return K_TYPE; }
+warning { return K_WARNING; }
when { return K_WHEN; }
while { return K_WHILE; }
diff --git a/src/pl/plpython/error.expected b/src/pl/plpython/error.expected
index 96de5da6603..9f0eff0762f 100644
--- a/src/pl/plpython/error.expected
+++ b/src/pl/plpython/error.expected
@@ -1,11 +1,11 @@
SELECT invalid_type_uncaught('rick');
-NOTICE: plpython: in function __plpython_procedure_invalid_type_uncaught_49801:
+WARNING: plpython: in function __plpython_procedure_invalid_type_uncaught_49801:
plpy.SPIError: Cache lookup for type `test' failed.
SELECT invalid_type_caught('rick');
-NOTICE: plpython: in function __plpython_procedure_invalid_type_caught_49802:
+WARNING: plpython: in function __plpython_procedure_invalid_type_caught_49802:
plpy.SPIError: Cache lookup for type `test' failed.
SELECT invalid_type_reraised('rick');
-NOTICE: plpython: in function __plpython_procedure_invalid_type_reraised_49803:
+WARNING: plpython: in function __plpython_procedure_invalid_type_reraised_49803:
plpy.SPIError: Cache lookup for type `test' failed.
SELECT valid_type('rick');
valid_type
diff --git a/src/pl/plpython/feature.expected b/src/pl/plpython/feature.expected
index b689c1f6154..9afd782e7d2 100644
--- a/src/pl/plpython/feature.expected
+++ b/src/pl/plpython/feature.expected
@@ -29,7 +29,7 @@ SELECT global_test_two();
(1 row)
SELECT import_fail();
-NOTICE: ('import socket failed -- untrusted dynamic module: _socket',)
+WARNING: ('import socket failed -- untrusted dynamic module: _socket',)
import_fail
--------------------
failed as expected
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index c0858076f6b..e56f9254cff 100644
--- a/src/pl/plpython/plpython.c
+++ b/src/pl/plpython/plpython.c
@@ -29,7 +29,7 @@
* MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.15 2002/03/06 06:10:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.16 2002/03/06 18:50:32 momjian Exp $
*
*********************************************************************
*/
@@ -1658,9 +1658,12 @@ PLyDict_FromTuple(PLyTypeInfo * info, HeapTuple tuple, TupleDesc desc)
/* interface to postgresql elog
*/
static PyObject *PLy_debug(PyObject *, PyObject *);
+static PyObject *PLy_log(PyObject *, PyObject *);
+static PyObject *PLy_info(PyObject *, PyObject *);
+static PyObject *PLy_notice(PyObject *, PyObject *);
+static PyObject *PLy_warning(PyObject *, PyObject *);
static PyObject *PLy_error(PyObject *, PyObject *);
static PyObject *PLy_fatal(PyObject *, PyObject *);
-static PyObject *PLy_notice(PyObject *, PyObject *);
/* PLyPlanObject, PLyResultObject and SPI interface
*/
@@ -1782,9 +1785,12 @@ static PyMethodDef PLy_methods[] = {
* logging methods
*/
{"debug", PLy_debug, METH_VARARGS, NULL},
+ {"log", PLy_log, METH_VARARGS, NULL},
+ {"info", PLy_info, METH_VARARGS, NULL},
+ {"notice", PLy_notice, METH_VARARGS, NULL},
+ {"warning", PLy_warning, METH_VARARGS, NULL},
{"error", PLy_error, METH_VARARGS, NULL},
{"fatal", PLy_fatal, METH_VARARGS, NULL},
- {"notice", PLy_notice, METH_VARARGS, NULL},
/*
* create a stored plan
@@ -2627,35 +2633,53 @@ populate_methods(PyObject *klass, PyMethodDef *methods)
/* the python interface to the elog function
* don't confuse these with PLy_elog
*/
-static PyObject *PLy_log(int, PyObject *, PyObject *);
+static PyObject *PLy_output(int, PyObject *, PyObject *);
PyObject *
PLy_debug(PyObject * self, PyObject * args)
{
- return PLy_log(LOG, self, args);
+ return PLy_output(DEBUG1, self, args);
}
PyObject *
-PLy_error(PyObject * self, PyObject * args)
+PLy_log(PyObject * self, PyObject * args)
{
- return PLy_log(ERROR, self, args);
+ return PLy_output(LOG, self, args);
}
PyObject *
-PLy_fatal(PyObject * self, PyObject * args)
+PLy_info(PyObject * self, PyObject * args)
{
- return PLy_log(FATAL, self, args);
+ return PLy_output(INFO, self, args);
}
PyObject *
PLy_notice(PyObject * self, PyObject * args)
{
- return PLy_log(NOTICE, self, args);
+ return PLy_output(NOTICE, self, args);
+}
+
+PyObject *
+PLy_warning(PyObject * self, PyObject * args)
+{
+ return PLy_output(WARNING, self, args);
+}
+
+PyObject *
+PLy_error(PyObject * self, PyObject * args)
+{
+ return PLy_output(ERROR, self, args);
+}
+
+PyObject *
+PLy_fatal(PyObject * self, PyObject * args)
+{
+ return PLy_output(FATAL, self, args);
}
PyObject *
-PLy_log(volatile int level, PyObject * self, PyObject * args)
+PLy_output(volatile int level, PyObject * self, PyObject * args)
{
DECLARE_EXC();
PyObject *so;
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index ebc7b8fb884..34bc731e9ab 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -31,7 +31,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.51 2002/03/06 06:10:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.52 2002/03/06 18:50:33 momjian Exp $
*
**********************************************************************/
@@ -1259,7 +1259,11 @@ pltcl_elog(ClientData cdata, Tcl_Interp *interp,
return TCL_ERROR;
}
- if (strcmp(argv[1], "INFO") == 0)
+ if (strcmp(argv[1], "DEBUG") == 0)
+ level = DEBUG1;
+ else if (strcmp(argv[1], "LOG") == 0)
+ level = LOG;
+ else if (strcmp(argv[1], "INFO") == 0)
level = INFO;
else if (strcmp(argv[1], "NOTICE") == 0)
level = NOTICE;
@@ -1269,8 +1273,6 @@ pltcl_elog(ClientData cdata, Tcl_Interp *interp,
level = ERROR;
else if (strcmp(argv[1], "FATAL") == 0)
level = FATAL;
- else if (strcmp(argv[1], "DEBUG") == 0)
- level = DEBUG1;
else
{
Tcl_AppendResult(interp, "Unknown elog level '", argv[1],