From: Bruce Momjian Date: Thu, 4 Oct 2001 15:47:41 +0000 (+0000) Subject: This patch adds reporting of tcl global variable errorInfo X-Git-Tag: REL7_2_BETA1~186 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=25ec48472233e771c53a174fd53a8bd9ac0e5199;p=thirdparty%2Fpostgresql.git This patch adds reporting of tcl global variable errorInfo which contains stack trace. One problem, after this patch errors will generate multiline ERROR messages. Is it acceptable or do I need split it and generate multiple singleline messages? Vsevolod Lobko --- diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c index 5800320615c..73c5247e3c5 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.40 2001/10/01 15:33:31 momjian Exp $ + * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.41 2001/10/04 15:47:41 momjian Exp $ * **********************************************************************/ @@ -789,7 +789,11 @@ pltcl_func_handler(PG_FUNCTION_ARGS) pltcl_restart_in_progress = 1; if (--pltcl_call_level == 0) pltcl_restart_in_progress = 0; - elog(ERROR, "pltcl: %s", interp->result); + UTF_BEGIN; + elog(ERROR, "pltcl: %s\n%s", interp->result, + UTF_U2E(Tcl_GetVar(interp,"errorInfo", + TCL_GLOBAL_ONLY))); + UTF_END; } if (--pltcl_call_level == 0) pltcl_restart_in_progress = 0; @@ -1162,7 +1166,11 @@ pltcl_trigger_handler(PG_FUNCTION_ARGS) pltcl_restart_in_progress = 1; if (--pltcl_call_level == 0) pltcl_restart_in_progress = 0; - elog(ERROR, "pltcl: %s", interp->result); + UTF_BEGIN; + elog(ERROR, "pltcl: %s\n%s", interp->result, + UTF_U2E(Tcl_GetVar(interp,"errorInfo", + TCL_GLOBAL_ONLY))); + UTF_END; } if (--pltcl_call_level == 0) pltcl_restart_in_progress = 0;