| 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: | Whole Thread | Raw Message | 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
| 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 |