Trapping errors

From: Shane W <shane-pgsql(at)csy(dot)ca>
To: pgsql-general(at)postgresql(dot)org
Subject: Trapping errors
Date: 2011-05-23 20:08:07
Message-ID: 20110523200807.GA29846@csy.ca
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Johnston 2011-05-23 20:17:41 Re: Trapping errors
Previous Message John R Pierce 2011-05-23 19:39:59 Re: Postgre Client only Install on Linux- 8.4.7