diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-04-03 19:41:56 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-04-03 19:41:56 -0400 |
commit | 3d3095497b872696e8860763f54217f425c7d35b (patch) | |
tree | 72aa4f6b477affde2139bb6616845bc6f04d6364 /lib/sqlalchemy/orm/unitofwork.py | |
parent | 85156a0fbe43f8691e19c077c92b0d433f9e654b (diff) | |
download | sqlalchemy-3d3095497b872696e8860763f54217f425c7d35b.tar.gz |
row switch works for post-cycle sorts too...just needed more data in the deps. the pattern here
is more data needed for each tweak.
Diffstat (limited to 'lib/sqlalchemy/orm/unitofwork.py')
-rw-r--r-- | lib/sqlalchemy/orm/unitofwork.py | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py index a4eb00f70..c8eca67eb 100644 --- a/lib/sqlalchemy/orm/unitofwork.py +++ b/lib/sqlalchemy/orm/unitofwork.py @@ -105,15 +105,7 @@ class UOWTransaction(object): def remove_state_actions(self, state): """remove pending actions for a state from the uowtransaction.""" - if state in self.states: - isdelete, listonly = self.states[state] - self.states[state] = (False, True) - if isdelete: - self.postsort_actions.pop((DeleteState, state), None) - else: - self.postsort_actions.pop((SaveUpdateState, state), None) - - + self.states[state] = (False, True) def get_attribute_history(self, state, key, passive=True): hashkey = ("history", state, key) @@ -223,11 +215,9 @@ class UOWTransaction(object): # execute actions sort = topological.sort(self.dependencies, self.postsort_actions.values()) - print "------------------------" -# import pdb -# pdb.set_trace() - print self.dependencies - print sort +# print "------------------------" +# print self.dependencies +# print sort for rec in sort: rec.execute(self) @@ -411,10 +401,11 @@ class DeleteState(PostSortRec): def execute(self, uow): mapper = self.state.manager.mapper.base_mapper - mapper._delete_obj( - [self.state], - uow - ) + if uow.states[self.state][0]: + mapper._delete_obj( + [self.state], + uow + ) def __repr__(self): return "%s(%s)" % ( |