Re: using functions to generate custom error messages - Mailing list pgsql-novice

From Josh Berkus
Subject Re: using functions to generate custom error messages
Date
Msg-id web-1827542@davinci.ethosmedia.com
Whole thread Raw
In response to using functions to generate custom error messages  (Joel Rodrigues <skyfyre@Phreaker.net>)
Responses Re: using functions to generate custom error messages
Re: using functions to generate custom error messages
List pgsql-novice
Joel,

> Would it be considered good practice to use functions to generate
> custom error messages ?

Depends on what you mean by "good practice".   The "best practice",
arguably,  would be to do this in some kind of middleware.   If,
however, your project is too lightweight to have middleware, then using
functions to do so can be pretty good.

An alternate, perhaps much simpler approach, would be to intercept the
database error messages and transform them into custom error messages
through text parsing or an error lookup table.

> The only odd thing about it I can see is that constraints have to be
> coded into the function, whether or not they've already been included
> in the table itself.

Absolutely.  In fact, if you take this approach, you might drop the
table constraints as redundant -- provided that you manage your
checking functions well.

> I do understand that there are other ways/places to do error
> checking, in the CGI script or in JavaScript, but this is how/where
> I'd like to do it.

Absolutety.  The drawbacks to this approach, however, are:
1) managing all these testing triggers
2) performance loss if the triggers are significantly slower than
constraints.

> BTW, does anyone know why \df doesn't find the function "maxten" that
> I created ?

Currently, \df does not list any function which returns OPAQUE.  I'm
not sure of the reason for this.

-Josh Berkus

pgsql-novice by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: Efficiency of stored procedure vs large join
Next
From: Tom Lane
Date:
Subject: Re: Question on locale settings