def _identity_key_from_state(self, state):
dict_ = state.dict
-
+ manager = state.manager
return self._identity_class, tuple([
- self._get_state_attr_by_column(state, dict_, col)
+ manager[self._columntoproperty[col].key].\
+ impl.get(state, dict_, False)
for col in self.primary_key
- ])
+ ])
def primary_key_from_instance(self, instance):
"""Return the list of primary key values for the given
def _primary_key_from_state(self, state):
dict_ = state.dict
- return [self._get_state_attr_by_column(state, dict_, column) for
- column in self.primary_key]
+ manager = state.manager
+ return [
+ manager[self._columntoproperty[col].key].\
+ impl.get(state, dict_, False)
+ for col in self.primary_key
+ ]
def _get_state_attr_by_column(self, state, dict_, column, passive=False):
prop = self._columntoproperty[column]
- value = state.manager[prop.key].impl.get(state, dict_, passive=passive)
- if prop.get_col_value:
- value = prop.get_col_value(column, value)
- return value
+ return state.manager[prop.key].impl.get(state, dict_, passive=passive)
def _set_state_attr_by_column(self, state, dict_, column, value):
prop = self._columntoproperty[column]
- if prop.set_col_value:
- prop.set_col_value(state, dict_, value, column)
- else:
- state.manager[prop.key].impl.set(state, dict_, value, None)
+ state.manager[prop.key].impl.set(state, dict_, value, None)
def _get_committed_attr_by_column(self, obj, column):
state = attributes.instance_state(obj)
passive=False):
prop = self._columntoproperty[column]
- value = state.manager[prop.key].impl.\
+ return state.manager[prop.key].impl.\
get_committed_value(state, dict_, passive=passive)
- if prop.get_col_value:
- value = prop.get_col_value(column, value)
- return value
def _optimized_get_statement(self, state, attribute_names):
"""assemble a WHERE clause which retrieves a given state by primary
state, prop.key, passive=True)
if history.added:
value = history.added[0]
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
params[col.key] = value
hasdata = True
if hasdata:
params[col.key] = \
mapper.version_id_generator(None)
else:
- # inline of _get_state_attr_by_column
+ # pull straight from the dict for
+ # pending objects
prop = mapper._columntoproperty[col]
value = state_dict.get(prop.key, None)
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
-
if value is None:
if col in pks:
has_all_pks = False
value_params[col] = history.added[0]
else:
value = history.added[0]
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
params[col.key] = value
if col in pks:
uowtransaction.\
attributes:
value = history.added[0]
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
params[col._label] = value
else:
# use the old value to
# locate the row
value = history.deleted[0]
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
params[col._label] = value
hasdata = True
else:
# update statement
del params[col.key]
value = history.added[0]
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
params[col._label] = value
else:
hasdata = True
elif col in pks:
value = state.manager[prop.key].\
impl.get(state, state_dict)
- if prop.get_col_value:
- value = prop.get_col_value(col, value)
params[col._label] = value
if hasdata:
update.append((state, state_dict, params, mapper,
def populate(source, source_mapper, dest, dest_mapper,
synchronize_pairs, uowcommit, flag_cascaded_pks):
+ source_dict = source.dict
+ dest_dict = dest.dict
+
for l, r in synchronize_pairs:
try:
- value = source_mapper._get_state_attr_by_column(source, source.dict, l)
+ # inline of source_mapper._get_state_attr_by_column
+ prop = source_mapper._columntoproperty[l]
+ value = source.manager[prop.key].impl.get(source, source_dict, False)
except exc.UnmappedColumnError:
_raise_col_to_prop(False, source_mapper, l, dest_mapper, r)
try:
- dest_mapper._set_state_attr_by_column(dest, dest.dict, r, value)
+ # inline of dest_mapper._set_state_attr_by_column
+ prop = dest_mapper._columntoproperty[r]
+ dest.manager[prop.key].impl.set(dest, dest_dict, value, None)
except exc.UnmappedColumnError:
_raise_col_to_prop(True, source_mapper, l, dest_mapper, r)