SAVEPOINT syntax again - Mailing list pgsql-hackers

From Oliver Jowett
Subject SAVEPOINT syntax again
Date
Msg-id 411A2A6E.7000201@opencloud.com
Whole thread Raw
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: pgsql@mohawksoft.com
Date:
Subject: fsync, fdatasync, open_sync, and open_datasync, -- Linux insanity
Next
From: Philip Warner
Date:
Subject: Does psql use nested transactions?