Pgsql errors, DBI and CGI::Carp

Started by Toomas Vendelinalmost 17 years ago3 messagesgeneral
Jump to latest
#1Toomas Vendelin
pg@vendelin.com

I'm writing CGI scripts in Perl using Postgresql via DBI interface.
RAISE_ERROR is on.

For some reason (unlike with MySQL), when a Perl script dies from
Postgresql error, the line number of Perl script where the error
occurred is not reported, just the SQL statement line number is given.
In a longer script looking it may become a tedious task to guess the
line in script that caused the problem. Is that an expected behavior
or am I missing something?

Toomas

#2Daniel Verite
daniel@manitou-mail.org
In reply to: Toomas Vendelin (#1)
Re: Pgsql errors, DBI and CGI::Carp

Toomas Vendelin wrote:

I'm writing CGI scripts in Perl using Postgresql via DBI interface.
RAISE_ERROR is on.

For some reason (unlike with MySQL), when a Perl script dies from
Postgresql error, the line number of Perl script where the error
occurred is not reported, just the SQL statement line number is

given.

In a longer script looking it may become a tedious task to guess the

line in script that caused the problem. Is that an expected behavior

or am I missing something?

It works for me:

$ cat dberr.pl
use CGI::Carp;
use DBI;
my $dbh=DBI->connect("dbi:Pg:dbname=test") or die;
$dbh->do("bogus SQL");

$ perl dberr.pl
[Fri May 1 15:05:08 2009] dberr.pl: DBD::Pg::db do failed: ERROR:
syntax error at or near "bogus"
[Fri May 1 15:05:08 2009] dberr.pl: LINE 1: bogus SQL
[Fri May 1 15:05:08 2009] dberr.pl: ^ at dberr.pl line 4.

If you run that trivial program in your environment, what output do you
get?

Best regards,
--
Daniel
PostgreSQL-powered mail user agent and storage:
http://www.manitou-mail.org

#3Toomas Vendelin
pg@vendelin.com
In reply to: Daniel Verite (#2)
Re: Pgsql errors, DBI and CGI::Carp

My mistake was using DBD::PgPP (as suggested in "Beginning Databases
with PostgreSQL" by Neil Matthew and Richard stones, Apress) instead
of DBD::Pg.

Thanks for help!

On May 1, 2009, at 4:07 PM, Daniel Verite wrote:

Show quoted text

Toomas Vendelin wrote:

I'm writing CGI scripts in Perl using Postgresql via DBI
interface. RAISE_ERROR is on.
For some reason (unlike with MySQL), when a Perl script dies from
Postgresql error, the line number of Perl script where the error
occurred is not reported, just the SQL statement line number is

given.

In a longer script looking it may become a tedious task to guess the

line in script that caused the problem. Is that an expected behavior

or am I missing something?

It works for me:

$ cat dberr.pl
use CGI::Carp;
use DBI;
my $dbh=DBI->connect("dbi:Pg:dbname=test") or die;
$dbh->do("bogus SQL");

$ perl dberr.pl
[Fri May 1 15:05:08 2009] dberr.pl: DBD::Pg::db do failed: ERROR:
syntax error at or near "bogus"
[Fri May 1 15:05:08 2009] dberr.pl: LINE 1: bogus SQL
[Fri May 1 15:05:08 2009] dberr.pl: ^ at dberr.pl line 4.

If you run that trivial program in your environment, what output do
you get?

Best regards,
--
Daniel
PostgreSQL-powered mail user agent and storage:
http://www.manitou-mail.org

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general