Thread: custom error messages/numbers

custom error messages/numbers

From
"BARTKO Zoltan"
Date:
Folks,
 
I am developing an app for PostgreSQL, entirely with stored functions (somewhat resembling the object-oriented approach. In fact it is not an app, just an API). All my functions return an integer value - 0 if the function was successful, another value otherwise.
 
Until now, all parameter checking was done manually in the stored function (if param is null then return -8; end if; etc.) This makes things quite lengthy.
 
I know about check constraints. However, upon error they throw an error message and abort the current transaction, So my question is: is there any possible way of throwing my own error messages upon a check constraint violation? 
 
Thank you very much
 
Zoltan Bartko

Re: custom error messages/numbers

From
Richard Huxton
Date:
BARTKO Zoltan wrote:
> Folks,
>
> I am developing an app for PostgreSQL, entirely with stored functions
> (somewhat resembling the object-oriented approach. In fact it is not
> an app, just an API). All my functions return an integer value - 0 if
> the function was successful, another value otherwise.
>
> Until now, all parameter checking was done manually in the stored
> function (if param is null then return -8; end if; etc.) This makes
> things quite lengthy.
>
> I know about check constraints. However, upon error they throw an
> error message and abort the current transaction, So my question is:
> is there any possible way of throwing my own error messages upon a
> check constraint violation?

Not in v7.4 - there should be nested transactions available in 7.5 which
might allow this. In fact, I think the developer of nested transactions
is looking for testers at the moment - see the hackers list for details.

In actual fact, I'd be tempted to move the procedural API out of the
database. If all your access is to be through the API and not using SQL
there seems little point in embedding it inside PG.

--
   Richard Huxton
   Archonet Ltd

Re: custom error messages/numbers

From
Martijn van Oosterhout
Date:
On Thu, May 27, 2004 at 06:26:53PM +0200, BARTKO Zoltan wrote:
> Folks,
>
> I am developing an app for PostgreSQL, entirely with stored functions (somewhat resembling the object-oriented
approach.In fact it is not an app, just an API). All my functions return an integer value - 0 if the function was
successful,another value otherwise. 
>
> Until now, all parameter checking was done manually in the stored function (if param is null then return -8; end if;
etc.)This makes things quite lengthy. 
>
> I know about check constraints. However, upon error they throw an error message and abort the current transaction, So
myquestion is: is there any possible way of throwing my own error messages upon a check constraint violation?  

I don't know if this does what you want, but maybe RAISE ERROR is what
you're looking for.

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Attachment