Re: SQLSTATE and SQLERRM

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Pavel Stehule <stehule(at)kix(dot)fsv(dot)cvut(dot)cz>
Cc: pgsql-patches(at)postgresql(dot)org, neilc(at)samurai(dot)com, tgl(at)sss(dot)pgh(dot)pa(dot)us
Subject: Re: SQLSTATE and SQLERRM
Date: 2005-06-07 16:52:01
Message-ID: 200506071652.j57Gq1C27858@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches


Patch retracted by author; new one coming.

---------------------------------------------------------------------------

Pavel Stehule wrote:
> Hello
>
> This patch respect last Tom's Lane notes. Is based on first variante,
>
> http://archives.postgresql.org/pgsql-committers/2005-05/msg00303.php
>
> SQLSTATE and SQLERRM are local variables blocks with EXCEPTION clause.
> I wonted respect a litlle bit Oracle behavior and therefore exist these
> variables on function scope too, allways "00000" and "Successful
> completation" (allways marked isconst).
>
> I am really not sure what is better, respect Oracle or not with visibility
> SQLSTATE and SQLERRM on function scope. Is true, using these variables
> outside EXCEPTION is nonsens, but on other hand all magic variables has
> function scope: FOUND, NEW, OLD, ... . SQLSTATE and SQLERRM are little bit
> similar. If are you in oportunity, please correct this patch. It's easy.
> Clean all parts with these on functions related procedures. Then is
> neccesery change documentation, add info about outside exceptions blocks
> is impossible use SQLSTATE and SQLERRM variables. (regress too)
>
> Regards
>
> Pavel Stehule
>
> create function excpt_test() returns void as $$
> begin
> raise notice '% %', sqlstate, sqlerrm;
> begin
> raise exception 'usr exception';
> exception when others then
> raise notice 'caught usr exception % %', sqlstate, sqlerrm;
> begin
> raise notice '% %', sqlstate, sqlerrm;
> perform 10/0;
> exception when others then
> raise notice 'caught usr exception % %', sqlstate, sqlerrm;
> end;
> raise notice '% %', sqlstate, sqlerrm;
> end;
> raise notice '% %', sqlstate, sqlerrm;
> end; $$ language plpgsql;
> CREATE FUNCTION
> select excpt_test();
> NOTICE: 00000 Successful completion
> NOTICE: caught usr exception P0001 usr exception
> NOTICE: P0001 usr exception
> NOTICE: caught usr exception 22012 division by zero
> NOTICE: P0001 usr exception
> NOTICE: 00000 Successful completion
> excpt_test
> ------------
>
> Regards
> Pavel Stehule

Content-Description:

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-patches by date

  From Date Subject
Next Message Pavel Stehule 2005-06-07 17:23:59 Re: SQLSTATE and SQLERRM
Previous Message Bruce Momjian 2005-06-07 16:51:42 Re: SQLSTATE and SQLERRM