[ZODB-Dev] Re: [Persistence-sig] "Straw Man" transaction API

Phillip J. Eby pje@telecommunity.com
Thu, 01 Aug 2002 08:52:22 -0400


At 08:42 AM 8/1/02 -0400, Jim Fulton wrote:
>Anthony Baxter wrote:
>>>>>Barry A. Warsaw wrote
>>>Say you had savepoint(t1), savepoint(t2), and savepoint(t3) where t1 <
>>>t2 < t3.  Then you rolled back savepoint(t1) and then try to rollback
>>>savepoint(t3), you'd get an exception right?
>>If you have multiple savepoints in the same transaction, should you be
>>allowed to roll back the one that's not the most recent? To my brain, this
>>doesn't make sense...
>
>Rolling back to a non-recent savepoint implicitly rolls back the recent 
>savepoints.

Oy.  That makes my head hurt.  Not on the interface side, where it makes 
perfect sense.  More on the implementation side.

The one DBMS whose savepoint implementation I'm sufficiently familiar with 
to try and figure this out, won't allow this.  You can only have one savepoint.

I don't think many DBMS systems offer such flexible savepoint capabilities, 
so it's going to be important to work out what happens when a data manager 
can only support a single savepoint at a time.