Against CVS HEAD:

test=# select version();
version -----------------------------------------------------------------------------------------------
PostgreSQL 8.0.0beta1 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.3 (Debian 20040401)
(1 row)


test=# begin;
BEGIN
test=# savepoint foo;
SAVEPOINT
test=# rollback to foo;
ROLLBACK
test=# rollback to savepoint foo;
ERROR:  syntax error at or near "foo" at character 23
LINE 1: rollback to savepoint foo;
                              ^
test=# rollback;
ROLLBACK

test=# begin;
BEGIN
test=# savepoint foo;
SAVEPOINT
test=# release foo;
RELEASE
test=# savepoint foo;
SAVEPOINT
test=# release savepoint foo;
ERROR:  syntax error at or near "foo" at character 19
LINE 1: release savepoint foo;
                          ^

Comments:

1) We have a different syntax to the SQL200n draft (and Oracle by the looks of it) for ROLLBACK. The draft says:

<rollback statement> ::= ROLLBACK [ WORK ] [ AND [ NO ] CHAIN ] [ <savepoint clause> ]
<savepoint clause> ::= TO SAVEPOINT <savepoint specifier>

2) We have a different syntax for RELEASE too. The SQL200n draft says:

<release savepoint statement> ::= RELEASE SAVEPOINT <savepoint specifier>

3) Can the command tag for a ROLLBACK TO SAVEPOINT be different to the command tag for a global rollback, so clients can distinguish the two cases? ("ROLLBACK <savepoint specifier>" might be nice)


-O

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to