diff options
Diffstat (limited to 'lib/sqlalchemy/orm')
-rw-r--r-- | lib/sqlalchemy/orm/persistence.py | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index b429aa4c1..254d3bf09 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -472,12 +472,11 @@ def _collect_update_commands( continue if bulk: - 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]) - ) + 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) else: pk_params = {} for col in pks: |