My reasoning was :
Look to every query on a time line
savepoint 1
query 1
....
savepoint j
query j
.....
savepoint n
query n

When I release savepoint j , I think 'everythin before savepoint j is ok and 
safe', and so I don't need the savepoints before savepoint j anymore (cause 
they're save) when I do a rollback to savepoint j, I say 'everything done after 
savepoint j is rubbish' so I don't need the savepoints after j anymore

Lets say I release savepoint j, why wouldn't it make sense to go back to 
savepoint j+1, (a state after the state beeing released).
I tought of releasing a savepoint as 'everything up to that savepoint is ok, 
I'm not yet shure about the queries coming next'

Michael

Phil Frost <[EMAIL PROTECTED]> wrote:

If I do:

savepoint one;
update foo set bar = 2;
savepoint two;
update baz set foo = 3;
savepoint three;
delete from foo;

Why would it make sense to release "one" if i release "two"? If I  
release "two", then it makes sense that I can never go back to "two"  
or "three", but your proposed change means that if I release "two", I  
can later rollback to "three" but not to "one". I don't see how  
that's useful.

Essentially what the docs say is that savepoints are created on a  
stack, and when you do something to to a savepoint "s", you  
implicitly do the same thing to all the other savepoints above "s".  
Or, if you think of them being nested:

savepoint one {
   update foo set bar = 2;
   savepoint two {
     update baz set foo = 3;
     savepoint three {
       delete from foo;
       ...
     }
     ...
   }
   ...
}

then any operation on a savepoint also applies to any savepoints  
nested within it.


       
---------------------------------
Catch up on fall's hot new shows on Yahoo! TV.  Watch previews, get listings, 
and more!

Reply via email to