# determine identity key
if refresh_instance:
- identitykey = refresh_instance._instance_key
+ identitykey = refresh_instance.dict['_instance_key']
else:
identitykey = self.identity_key_from_row(row)
(session_identity_map, local_identity_map) = (context.session.identity_map, context.identity_map)
for instance in context.identity_map.values():
context.attributes.get(('populating_mapper', id(instance)), object_mapper(instance))._post_instance(context, instance)
- if context.refresh_instance and context.only_load_props and context.refresh_instance._instance_key in context.identity_map:
+ if context.refresh_instance and context.only_load_props and context.refresh_instance.dict['_instance_key'] in context.identity_map:
# if refreshing partial instance, do special state commit
# affecting only the refreshed attributes
- context.refresh_instance._state.commit(context.only_load_props)
- del context.identity_map[context.refresh_instance._instance_key]
+ context.refresh_instance.commit(context.only_load_props)
+ del context.identity_map[context.refresh_instance.dict['_instance_key']]
# store new stuff in the identity map
for instance in context.identity_map.values():
try:
if lockmode is not None:
q = q.with_lockmode(lockmode)
- q = q._select_context_options(populate_existing=refresh_instance is not None, version_check=(lockmode is not None), only_load_props=only_load_props, refresh_instance=refresh_instance)
+ q = q._select_context_options(populate_existing=bool(refresh_instance), version_check=(lockmode is not None), only_load_props=only_load_props, refresh_instance=refresh_instance)
q._order_by = None
# call using all() to avoid LIMIT compilation complexity
return q.all()[0]
self._populate_existing = populate_existing
if version_check:
self._version_check = version_check
- if refresh_instance is not None:
+ if refresh_instance:
self._refresh_instance = refresh_instance
if only_load_props:
self._only_load_props = util.Set(only_load_props)
self._validate_persistent(instance)
- if self.query(instance.__class__)._get(instance._instance_key, refresh_instance=instance, only_load_props=attribute_names) is None:
+ if self.query(instance.__class__)._get(instance._instance_key, refresh_instance=instance._state, only_load_props=attribute_names) is None:
raise exceptions.InvalidRequestError("Could not refresh instance '%s'" % mapperutil.instance_str(instance))
def expire(self, instance, attribute_names=None):
if state.trigger is None:
def load_attributes(instance, attribute_names):
- if object_session(instance).query(instance.__class__)._get(instance._instance_key, refresh_instance=instance, only_load_props=attribute_names) is None:
+ if object_session(instance).query(instance.__class__)._get(instance._instance_key, refresh_instance=instance._state, only_load_props=attribute_names) is None:
raise exceptions.InvalidRequestError("Could not refresh instance '%s'" % mapperutil.instance_str(instance))
state.trigger = load_attributes
if create_statement is None:
ident = instance._instance_key[1]
- session.query(localparent)._get(None, ident=ident, only_load_props=group, refresh_instance=instance)
+ session.query(localparent)._get(None, ident=ident, only_load_props=group, refresh_instance=instance._state)
else:
statement, params = create_statement(instance)
- session.query(localparent).from_statement(statement).params(params)._get(None, only_load_props=group, refresh_instance=instance)
+ session.query(localparent).from_statement(statement).params(params)._get(None, only_load_props=group, refresh_instance=instance._state)
return attributes.ATTR_WAS_SET
return lazyload