Igor, 

Yup I was a bit confused too. 

I think of savepoints as a "mark" within the journal. Then a rollback simply 
applies the undo backwards to that "mark". Releasing a savepoint as you stated 
removes the "mark". Only commit or rollback can actually modify the data. 
Savepoint/Release are means to adjust the place holders for rollback points. 
Data is only persisted by a commit.

Ken


--- On Fri, 1/2/09, Igor Tandetnik <itandet...@mvps.org> wrote:

> From: Igor Tandetnik <itandet...@mvps.org>
> Subject: Re: [sqlite] Transaction within script
> To: sqlite-users@sqlite.org
> Date: Friday, January 2, 2009, 9:56 AM
> "D. Richard Hipp" <d...@hwaci.com> wrote
> in message
> news:ff9afacd-4cde-4d66-a15f-3b9226df0...@hwaci.com
> > Preliminary documentation can be seen at
> > http://www.sqlite.org/draft/lang_savepoint.html
> 
> Describing the effects of RELEASE statement as committing a
> savepoint 
> may be somewhat misleading. How can one commit some changes
> in the 
> middle of a transaction? What happens to those committed
> changes if the 
> entire transaction is rolled back later?
> 
> At least I, personally, was thoroughly confused by it, and
> got 
> un-confused only after reading Postgress' documentation
> which describes 
> the effects of RELEASE statement as "destroys a
> savepoint, makes it 
> unavalilable for rollback, but has no other user visible
> behavior". 
> Basically, as I understand it, RELEASE simply makes it as
> if the 
> SAVEPOINT statement it names (and all subsequent ones)
> never happened - 
> except when the SAVEPOINT in question initiated the
> transaction in the 
> first place (which, as I understand, is illegal in
> Postgress), in which 
> case RELEASE is the same as COMMIT.
> 
> Igor Tandetnik 
> 
> 
> 
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to