[subxacts] Savepoint syntax - Mailing list pgsql-patches

From Alvaro Herrera
Subject [subxacts] Savepoint syntax
Date
Msg-id 20040714190302.GB15098@dcc.uchile.cl
Whole thread Raw
Responses Re: [subxacts] Savepoint syntax
Re: [subxacts] Savepoint syntax
List pgsql-patches
Ok people,

After the last holy war on syntax issues I have been convinced that
savepoints are not that brain dead as it appears.  (They nest correctly
and "release" is equivalent to my "subcommit").  The only bitter point
is that on ROLLBACK TO the same savepoint is created again
automatically.

So I have dropped the idea of the propietary syntax.  This patch
implements proper savepoint syntax.  Includes regression tests but no
documentation is provided yet.

Note that this does not include other patches I'm working on, regarding
PGPROC, the password file, large objects, whole-tree abort on deadlock,
handling of subxacts in functions etc.  I'll submit those separately.
(It does include reverting XactLockTableWait to the previous state
though).

Note that I created a new ERRCODE class, 3B000, "Savepoint Exception",
with a single member, "Invalid Specification" 3B001.  This is what the
standard mandates when you RELEASE a non existant savepoint, etc.  Hope
this is OK.  Also, you can't create or release a savepoint on aborted
state (only COMMIT, END, ROLLBACK and ROLLBACK TO are accepted).

Please test, review and apply.  If anyone is able to crash the server
using this I'll be most interested.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
Thou shalt study thy libraries and strive not to reinvent them without
cause, that thy code may be short and readable and thy days pleasant
and productive. (7th Commandment for C Programmers)

Attachment

pgsql-patches by date:

Previous
From: Stefan Kaltenbrunner
Date:
Subject: Re: add missing options to pg_dumpall
Next
From: Andreas Pflug
Date:
Subject: Re: serverlog rotation/functions