Re: Nested Transactions, Abort All - Mailing list pgsql-hackers

From Dennis Bjorklund
Subject Re: Nested Transactions, Abort All
Date
Msg-id Pine.LNX.4.44.0407092240060.2838-100000@zigo.dhs.org
Whole thread Raw
In response to Re: Nested Transactions, Abort All  (Alvaro Herrera <alvherre@dcc.uchile.cl>)
List pgsql-hackers
On Fri, 9 Jul 2004, Alvaro Herrera wrote:

> > Simon posted it.  It is called RELEASE:
> 
> We can't actually release anything (commit the subtransactions), because
> they may be savepoints established after that point, and they are
> logically "inside" the previously established ones.  At RELEASE we can't
> really release -- we just lose the name and thus the opportunity to
> rollback to it.

You can still perform the release. If we have
 SAVEPOINT p1;
 SAVEPOINT p2;
 RELEASE p2;

then it's no problem, we released the topmost savepoint (commit the
corresponding subtransaction). And if we have
 SAVEPOINT p1;
 SAVEPOINT p2;
 RELEASE p1;

now you are saying that we just forget the name p1 and the subtransaction
for p1 is still there for ever.

But one should also link the subtransaction for p1 to p2, so when p2 is
released then also the (now unnamed) subtransaction for p1 is commited. Of
course we can't release p1 as long as p2 is still active. p2 is logically
a subtransaction of p1.

One don't really need an explicit link. When p2 is released all one needs 
to do is to look at the parent and see if that is still named, if not it 
should be commited and so on until we reach a named one.

-- 
/Dennis Björklund



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Nested Transactions, Abort All
Next
From: Alvaro Herrera
Date:
Subject: Re: Nested Transactions, Abort All