Trapping errors - Mailing list pgsql-general

From Shane W
Subject Trapping errors
Date
Msg-id 20110523200807.GA29846@csy.ca
Whole thread Raw
Responses Re: Trapping errors  ("David Johnston" <polobo@yahoo.com>)
Re: Trapping errors  (Alban Hertroys <dalroi@solfertje.student.utwente.nl>)
List pgsql-general
Hello list,

I have a table with double precision columns and update
queries which multiply and divide these values. I am
wondering if it's possible to catch overflow and underflow
errors to set the column to 0 in the case of an underflow
and a large value in the case of an overflow.

Currently, I have an exception handler in a PLPGSQL
ufunction that sort of does this.

begin
update tbl set score = score/s
exception when numeric_value_out_of range then
update tbl set score=0
where cast(score/s as numeric) < 1e-200
end;

But this is messy since the exception needs to rescan the
entire table if even one row fails the update. Is there a
better way to do this?

Best,
Shane


pgsql-general by date:

Previous
From: John R Pierce
Date:
Subject: Re: Postgre Client only Install on Linux- 8.4.7
Next
From: "David Johnston"
Date:
Subject: Re: Trapping errors