summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-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 d15fbbc1a..0e5e939b1 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -280,14 +280,14 @@ class SessionTransaction(object):
def _restore_snapshot(self):
assert self._is_transaction_boundary
+ for s in set(self._new).union(self.session._new):
+ self.session._expunge_state(s)
+
for s in set(self._deleted).union(self.session._deleted):
self.session._update_impl(s)
assert not self.session._deleted
- for s in set(self._new).union(self.session._new):
- self.session._expunge_state(s)
-
for s in self.session.identity_map.all_states():
_expire_state(s, None, instance_dict=self.session.identity_map)