Error codes as numbers or in other languages etc.

From: "Aasmund Midttun Godal" <postgresql(at)envisity(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Error codes as numbers or in other languages etc.
Date: 2001-10-23 17:08:08
Message-ID: 20011023170808.2262.qmail@ns.krot.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I have seen several people asking about getting error numbers or similar things out of postgres. The way I have done this is as follows:

CREATE TABLE errors (
errorstring TEXT PRIMARY KEY,
message TEXT
);

INSERT INTO errors VALUES ('^FATAL 1: Database "([^\"]+)" does not exist in the system catalog.$', 'FATALE 1: Le database "$1" n''existe pas dans le catalogue systeme');

Now in the app if we use perl and DBI we set RaiseError => 1 and catch the error via $dbh->errstr or something

pass it into a query like:

prepare('SELECT * FROM errors WHERE ? ~ errorstring');
#Isn't postgres great? reverse regular expression searches :)
my $s = execute($dbh->errstr);

then we exploit perl's ability:

$dbh->errstr =~ /$s->{'errorstring'}/"$s->{'message'}"/e;

Hopes someone else find it usefull,

Getting out numbers is offcourse even easier.

Aasmund Midttun Godal

aasmund(at)godal(dot)com - http://www.godal.com/
+47 40 45 20 46

Browse pgsql-sql by date

  From Date Subject
Next Message Joe Barrero 2001-10-23 17:24:52 Re: Auto Increment
Previous Message Aasmund Midttun Godal 2001-10-23 16:31:12 Re: PL/pgSQL triggers ON INSERT OR UPDATE