summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/session.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-07-09 01:45:44 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-07-09 01:45:44 +0000
commit4e4102f64d0b467649cb372460945a6a7f910884 (patch)
treed9330f83d06ad3571abc17853062b0b6c464bd27 /lib/sqlalchemy/orm/session.py
parent5045bf4f4bae769743bc3bef4ec85453caf0fa41 (diff)
downloadsqlalchemy-4e4102f64d0b467649cb372460945a6a7f910884.tar.gz
- Fixed bug whereby session.is_modified() would raise an exception
if any synonyms were in use.
Diffstat (limited to 'lib/sqlalchemy/orm/session.py')
-rw-r--r--lib/sqlalchemy/orm/session.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index cbfb0c1d6..a658783c2 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -1473,10 +1473,18 @@ class Session(object):
state = attributes.instance_state(instance)
except exc.NO_STATE:
raise exc.UnmappedInstanceError(instance)
+ dict_ = state.dict
for attr in state.manager.attributes:
- if not include_collections and hasattr(attr.impl, 'get_collection'):
+ if \
+ (
+ not include_collections and
+ hasattr(attr.impl, 'get_collection')
+ ) or not hasattr(attr.impl, 'get_history'):
continue
- (added, unchanged, deleted) = attr.get_history(instance, passive=passive)
+
+ (added, unchanged, deleted) = \
+ attr.impl.get_history(state, dict_, passive=passive)
+
if added or deleted:
return True
return False