diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-10-11 16:41:52 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-10-11 16:41:52 -0400 |
commit | 75be18004fac80de6aabea409c059eaaa0dd5244 (patch) | |
tree | d483bfb7c65e741eef74fedb4e16031d9ed19666 /lib/sqlalchemy | |
parent | 1f1ad557afa4919245c2cb9972099c1504a30a37 (diff) | |
download | sqlalchemy-75be18004fac80de6aabea409c059eaaa0dd5244.tar.gz |
- fix bug due to regression from #2793, make sure we only go to load
scalar attributes here and not relationships, else we get an error if there's no
actual scalars to load
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r-- | lib/sqlalchemy/orm/persistence.py | 4 | ||||
-rw-r--r-- | lib/sqlalchemy/orm/state.py | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index ccdd6e81e..13747be8a 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -728,8 +728,8 @@ def _finalize_insert_update_commands(base_mapper, uowtransaction, # it isn't expired. toload_now = [] - if base_mapper.eager_defaults and state.unloaded: - toload_now.extend(state.unloaded) + if base_mapper.eager_defaults: + toload_now.extend(state._unloaded_non_object) elif mapper.version_id_col is not None and \ mapper.version_id_generator is False: prop = mapper._columntoproperty[mapper.version_id_col] diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py index 35305dc79..2c947a7ac 100644 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@ -393,6 +393,15 @@ class InstanceState(interfaces._InspectionAttr): difference(self.dict) @property + def _unloaded_non_object(self): + return self.unloaded.difference(self._uses_objects) + + @property + def _uses_objects(self): + return (attr for attr in self.manager + if self.manager[attr].impl.uses_objects) + + @property def expired_attributes(self): """Return the set of keys which are 'expired' to be loaded by the manager's deferred scalar loader, assuming no pending |