diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2019-06-10 18:46:26 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2019-06-10 18:46:26 +0000 |
| commit | cd69fa85bdee2e416d325cd6d8d1439674bc8289 (patch) | |
| tree | ee56cb4189ebeff619e0bd3d97600f971709c6a7 /lib/sqlalchemy/dialects | |
| parent | b0bf421f1b12eeedd77ec6c39df8e5e6cc1fcc3f (diff) | |
| parent | 59e9276f04beef4459571cba4226f9d4eaef6be9 (diff) | |
| download | sqlalchemy-cd69fa85bdee2e416d325cd6d8d1439674bc8289.tar.gz | |
Merge "Accommodate value of None for ON DUPLICATE KEY UPDATE"
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index ad5ab288c..9aa80a5f4 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1232,15 +1232,15 @@ class MySQLCompiler(compiler.SQLCompiler): c for c in self.statement.table.c if c.key not in ordered_keys ] else: - # traverse in table column order cols = self.statement.table.c clauses = [] - for column in cols: - val = on_duplicate.update.get(column.key) - if val is None: - continue - elif coercions._is_literal(val): + # traverses through all table columns to preserve table column order + for column in (col for col in cols if col.key in on_duplicate.update): + + val = on_duplicate.update[column.key] + + if coercions._is_literal(val): val = elements.BindParameter(None, val, type_=column.type) value_text = self.process(val.self_group(), use_schema=False) elif isinstance(val, elements.BindParameter) and val.type._isnull: |
