request for more descriptive plperl error messages

From: Robert Kleemann <kleemann(at)scharp(dot)org>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: request for more descriptive plperl error messages
Date: 2007-10-03 19:03:03
Message-ID: 4703E767.8020901@scharp.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

I've been maintaining a database that contains a very large number of
plperl functions. An error in one of these functions will produce a
message such as:

ERROR: error from Perl function: syntax error at or near "." at line 58.

This is helpful to a degree but the critical missing information is the
function name (schema name would be nice too). With the current behavior
have to guess at what function might be causing this problem and then
look up the line number and see if that makes sense. I then repeat this
for the other functions until I get lucky.

Looking at src/pl/plperl/plperl.c I've found the following code:
/* XXX need to find a way to assign an errcode here */
ereport(ERROR,
(errmsg("error from Perl function: %s",
strip_trailing_ws(SvPV(ERRSV, PL_na)))));

This is duplicated in plperl_call_perl_func() and
plperl_call_perl_trigger_func()

I'd like to modify the code to return the perl function name and submit
a patch but I've never developed in the postgres code base before and am
not sure where to start. Can the function and schema name be found in
the FunctionCallInfo structure that is passed? Is this an easy thing to
do or a hard thing to do? Would anyone else find it useful? Does anyone
else want to do it?

thanks!
Robert

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Peter Eisentraut 2007-10-05 14:18:29 Re: request for more descriptive plperl error messages
Previous Message Robert Ayrapetyan 2007-09-20 08:17:34 Re: Problem with getting static libpq.a from PostgresSQL 8.2.4 sources using MinGW