Re: Syntax decisions for pl/pgsql RAISE extension

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

In response to

Responses

Browse pgsql-hackers by date

  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