From 81a025fca4c801acef1d137d427f3af730151126 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 25 Apr 2011 11:33:06 -0400 Subject: [PATCH] - Fixed a potential KeyError which under some circumstances could occur with the identity map, part of [ticket:2148] --- CHANGES | 4 ++++ lib/sqlalchemy/orm/identity.py | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 48fd755a44..cc96f18b50 100644 --- a/CHANGES +++ b/CHANGES @@ -21,6 +21,10 @@ CHANGES a deprecation warning in 0.6.8. [ticket:2144] + - Fixed a potential KeyError which under some + circumstances could occur with the identity + map, part of [ticket:2148] + - added Query.with_session() method, switches Query to use a different session. diff --git a/lib/sqlalchemy/orm/identity.py b/lib/sqlalchemy/orm/identity.py index a53d9f52db..8f000e419c 100644 --- a/lib/sqlalchemy/orm/identity.py +++ b/lib/sqlalchemy/orm/identity.py @@ -138,9 +138,9 @@ class WeakInstanceDict(IdentityMap): self._manage_incoming_state(state) def get(self, key, default=None): - if not dict.__contains__(self, key): + state = dict.get(self, key, default) + if state is default: return default - state = dict.__getitem__(self, key) o = state.obj() if o is None: o = state._is_really_none() -- 2.47.2