Oliver Jowett wrote:
> BEGIN
> SAVEPOINT a
> -- work
> SAVEPOINT b
> -- work
> SAVEPOINT a
> -- work
> ROLLBACK TO b
> -- work
>
> This is valid: the standard says that the second "SAVEPOINT a" destroys
> and recreates the savepoint "a", but doesn't say that it destroys
> intervening savepoints. In contrast, RELEASE SAVEPOINT explicitly says
> that it destroys the specified savepoint and all savepoints established
> since the specified savepoint.
>
> If you converted the second "SAVEPOINT a" into "RELEASE SAVEPOINT a;
> SAVEPOINT a" then savepoint "b" would be incorrectly destroyed.
You are right, that proves my proposal to be incorrect, because an implicit
RELEASE SAVEPOINT a; has side effects that are definitively against the
standard or what you would expect.
Best Regards,
Michael Paesold