diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-07-09 01:45:44 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-07-09 01:45:44 +0000 |
commit | 4e4102f64d0b467649cb372460945a6a7f910884 (patch) | |
tree | d9330f83d06ad3571abc17853062b0b6c464bd27 /lib/sqlalchemy/orm/session.py | |
parent | 5045bf4f4bae769743bc3bef4ec85453caf0fa41 (diff) | |
download | sqlalchemy-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.py | 12 |
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 |