diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-06-13 20:27:06 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-06-13 20:27:06 -0400 |
commit | bcbfcca2360a58ec1b5a9da1b2c45e8781904b82 (patch) | |
tree | 9d340c73b34be6f49a105cb7f71adb17be800be2 | |
parent | 2497d559ddeb68e52eb1838deeed7e3305280aa5 (diff) | |
download | sqlalchemy-bcbfcca2360a58ec1b5a9da1b2c45e8781904b82.tar.gz |
- restore the approach we have for pk_params, but in order
to suit #3451 exclude these columns from the "params"
dictionary in the first place, revises pr github:181
-rw-r--r-- | lib/sqlalchemy/orm/persistence.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index 254d3bf09..a42ed2f7c 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -443,7 +443,8 @@ def _collect_update_commands( params = dict( (propkey_to_col[propkey].key, state_dict[propkey]) for propkey in - set(propkey_to_col).intersection(state_dict) + set(propkey_to_col).intersection(state_dict).difference( + mapper._pk_keys_by_table[table]) ) else: params = {} @@ -472,11 +473,12 @@ def _collect_update_commands( continue if bulk: - pk_params = {} - for propkey in set(propkey_to_col).intersection(mapper._pk_keys_by_table[table]): - col = propkey_to_col[propkey] - pk_params[col._label] = state_dict.get(propkey) - params.pop(col.key, None) + pk_params = dict( + (propkey_to_col[propkey]._label, state_dict.get(propkey)) + for propkey in + set(propkey_to_col). + intersection(mapper._pk_keys_by_table[table]) + ) else: pk_params = {} for col in pks: |