"Jim C. Nasby" <decibel@decibel.org> writes:
> On Tue, Aug 03, 2004 at 10:17:14AM -0400, Tom Lane wrote:
>> Right. Essentially, our implementation is supplying the SAVEPOINT and
>> ROLLBACK TO commands implicitly as part of any block with an EXCEPTION
>> clause. When we get around to updating the "Oracle porting" guide in
>> the plpgsql docs, this will need to be clearly explained.
> If it's not difficult it would probably be good to allow for handling
> the rollback yourself.
We're not doing that. This is a server-side function we're talking
about: it is executing *inside* the transaction that you want it to fool
with the status of. If you want logic that can issue SAVEPOINT and
ROLLBACK at arbitrary points, code it on the client side.
Oracle seems to have defined PL/SQL as though the function code executes
outside the database engine, which is kind of an odd way to look at it
IMHO. But even if you think it's just the right thing, we can't support
it with anything approximating our current design for PLs.
regards, tom lane