From: Mike Bayer Date: Mon, 25 Apr 2011 15:33:06 +0000 (-0400) Subject: - Fixed a potential KeyError which under some X-Git-Tag: rel_0_7_0~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81a025fca4c801acef1d137d427f3af730151126;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Fixed a potential KeyError which under some circumstances could occur with the identity map, part of [ticket:2148] --- 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()