From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov> |
Cc: | pgsql-hackers(at)postgresql(dot)org, "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com> |
Subject: | Re: Syntax decisions for pl/pgsql RAISE extension |
Date: | 2008-05-12 18:43:59 |
Message-ID: | 23943.1210617839@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov> writes:
> I'm probably in the minority, but I care more about SQL/PSM
> compatibility than Oracle compatibility.
Well, a different line of attack would be to leave RAISE as-is and adopt
the SQL/PSM syntax for a modernized command. What I'm seeing in Part 4
is
<signal statement> ::=
SIGNAL <signal value>
[ <set signal information> ]
<signal value> ::=
<condition name>
| <sqlstate value>
<condition name> ::=
<identifier>
<sqlstate value> ::=
SQLSTATE [ VALUE ] <character string literal>
<set signal information> ::=
SET <signal information item list>
<signal information item list> ::=
<signal information item> [ { <comma> <signal information item> }... ]
<signal information item> ::=
<condition information item name> <equals operator> <simple value specification>
If we're willing to invent Postgres-specific <condition information item
names> for MESSAGE, DETAIL, etc, then this is just about isomorphic to
the proposed RAISE syntax, except that if you want an elog level other
than ERROR you'd have to specify it as an item in the SET-list.
BTW, the spec also uses <condition name> and <sqlstate value> as above
in handler declarations, so it looks like both Pavel and I got it wrong
about how to extend the EXCEPTION syntax: it should be
SQLSTATE [VALUE] 'xxxxx'
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2008-05-12 18:53:47 | Re: Syntax decisions for pl/pgsql RAISE extension |
Previous Message | Pavel Stehule | 2008-05-12 18:40:46 | Re: Syntax decisions for pl/pgsql RAISE extension |