From 4e4102f64d0b467649cb372460945a6a7f910884 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 9 Jul 2009 01:45:44 +0000 Subject: - Fixed bug whereby session.is_modified() would raise an exception if any synonyms were in use. --- lib/sqlalchemy/orm/session.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'lib') 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 -- cgit v1.2.1