Re: Basic subtransaction facility - Mailing list pgsql-patches

From Alvaro Herrera
Subject Re: Basic subtransaction facility
Date
Msg-id 20040427202126.GA4205@dcc.uchile.cl
Whole thread Raw
In response to Re: Basic subtransaction facility  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-patches
On Mon, Apr 26, 2004 at 11:30:16PM -0400, Bruce Momjian wrote:
>
> Alvaro, where are we on this patch.   I think the suggestion was to
> throw FATAL rather than add a new error level.
>
> Is this ready to be applied?

I forgot to verify if it worked correctly with #undef SUBTRANSACTIONS
--- it didn't.  This version does.  This patch includes both patches I
posted and a few more changes, and does the following:

- adds subtransaction state knowledge to xact.c
- adds subtransaction support to smgr, portals (cursors) and async notifies.
- adds a new memory context related to the subxact tree (is reset only
  on subtrans abort).
- corrects a couple of bugs in the previous patches.
- mantains a Xid list of committed subxacts, for use in future changes
  involving pg_clog
- adds support for executing BEGIN inside an aborted transaction,
  not only as a simple query (1st patch did this) but also as messages
  of v3 protocol and prepared statements.
- works cleanly with SUBTRANSACTIONS undefined (you get the current
  behavior, no BEGIN is allowed inside a running transaction) and
  defined (all of the above).
- keeps the original behavior of using FATAL whenever an bug is found
  inside xact.c

I feel this one is ready to be applied.  Tom wanted to review it, of
course.

Still missing:
- deal with prepared statements, deferred triggers
- save state in pg_clog
- visibility rules

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La realidad se compone de muchos sueños, todos ellos diferentes,
pero en cierto aspecto, parecidos..." (Yo, hablando de sueños eróticos)

pgsql-patches by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Basic subtransaction facility
Next
From: David Fetter
Date:
Subject: Dollar quoting docs, round 1