From: | Gaetano Mendola <mendola(at)bigfoot(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Sketch of extending error handling for subtransactions |
Date: | 2004-07-25 21:50:40 |
Message-ID: | 41042B30.4030305@bigfoot.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tom Lane wrote:
| Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
|
|>So it allows functions to use subtransactions and recover from errors.
|>I thought that was more than we could do for 7.5 and in fact the release
|>notes now saw that will be done in a future release.
|
|
| I think there's only a day or two's work between here and there, and it
| would be foolish not to have the feature if we can get it.
|
| As I see it, we need:
|
| 1. The elog.c factoring described in this thread.
|
| 2. An extension to the SPI API to allow execution of commands within
| a subtransaction, with catching of errors.
|
| 3. A bit of work on plpgsql to support some kind of EXCEPTION syntax.
|
| I might decide to forget about SPI and trap errors directly in plpgsql,
| but in any case it doesn't seem out of reach.
|
| I was just looking around the net to see exactly what Oracle's PL/SQL
| syntax is. It doesn't seem too unreasonable syntax-wise:
|
| BEGIN
| ... controlled statements ...
| EXCEPTION
| WHEN exception_name THEN
| ... error handling statements ...
| WHEN exception_name THEN
| ... error handling statements ...
| ...
| WHEN OTHERS THEN
| ... error handling statements ...
| END;
Is this sintax SQL standard driven ?
If not I'd prefere this one:
~ TRY
~ ... controlled statements ...
~ CATCH INTEGER THEN
~ ... error handling statements ...
~ CATCH VARCHAR THEN
~ ... error handling statements ...
~ ...
~ CATCH OTHERS THEN
... error handling statements ...
~ END;
and of course who trhow the exception:
~ THROW 3::INTEGER;
in this way who throw the exception can also transfer informations
on what is going on.
Am I may be not understanding what are you trying to do ?
Regards
Gaetano Mendola
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFBBCsu7UpzwH2SGd4RAo1aAKDUX+afgx+RjBdCtG9sdGp9eT6j1QCfasdq
hcm4Vt2RLsoN5cSvIfbgGiw=
=iJgV
-----END PGP SIGNATURE-----
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2004-07-25 21:51:33 | Re: Planning for beta (was Re: Sketch of extending error handling |
Previous Message | Bruce Momjian | 2004-07-25 21:49:42 | Improvements to PostgreSQL |