summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mysql/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/dialects/mysql/base.py')
-rw-r--r--lib/sqlalchemy/dialects/mysql/base.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py
index 44f90c47c..9cae3c689 100644
--- a/lib/sqlalchemy/dialects/mysql/base.py
+++ b/lib/sqlalchemy/dialects/mysql/base.py
@@ -788,8 +788,10 @@ from ... import types as sqltypes
from ... import util
from ...engine import default
from ...engine import reflection
+from ...sql import coercions
from ...sql import compiler
from ...sql import elements
+from ...sql import roles
from ...types import BINARY
from ...types import BLOB
from ...types import BOOLEAN
@@ -1218,7 +1220,7 @@ class MySQLCompiler(compiler.SQLCompiler):
def visit_on_duplicate_key_update(self, on_duplicate, **kw):
if on_duplicate._parameter_ordering:
parameter_ordering = [
- elements._column_as_key(key)
+ coercions.expect(roles.DMLColumnRole, key)
for key in on_duplicate._parameter_ordering
]
ordered_keys = set(parameter_ordering)
@@ -1238,7 +1240,7 @@ class MySQLCompiler(compiler.SQLCompiler):
val = on_duplicate.update.get(column.key)
if val is None:
continue
- elif elements._is_literal(val):
+ elif 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: