Re: Sketch of extending error handling for subtransactions

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-----

In response to

Responses

Browse pgsql-hackers by date

  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