summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-08-29 16:32:08 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-08-29 16:32:08 -0400
commit41a3e1fd99f651e4a3f534c57d18ad56241fd790 (patch)
tree442acc2977f95cf05dcd7666869117893dc6df68
parent8155138e0aac09c3c78d2eb9b3e06cc092ce42d3 (diff)
downloadsqlalchemy-41a3e1fd99f651e4a3f534c57d18ad56241fd790.tar.gz
- need to use safe_discard() at least in _restore_snapshot(), let's use it
everywhere in Session since the optimized one only applies to loading
-rw-r--r--lib/sqlalchemy/orm/session.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index 52873eb34..13afcb357 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -269,7 +269,7 @@ class SessionTransaction(object):
del s.key
for s, (oldkey, newkey) in self._key_switches.items():
- self.session.identity_map.discard(s)
+ self.session.identity_map.safe_discard(s)
s.key = oldkey
self.session.identity_map.replace(s)
@@ -1394,7 +1394,7 @@ class Session(_SessionClassMethods):
self._new.pop(state)
state._detach()
elif self.identity_map.contains_state(state):
- self.identity_map.discard(state)
+ self.identity_map.safe_discard(state)
self._deleted.pop(state, None)
state._detach()
elif self.transaction:
@@ -1464,7 +1464,7 @@ class Session(_SessionClassMethods):
if self._enable_transaction_accounting and self.transaction:
self.transaction._deleted[state] = True
- self.identity_map.discard(state)
+ self.identity_map.safe_discard(state)
self._deleted.pop(state, None)
state.deleted = True