diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-03-23 15:11:03 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-03-23 15:31:05 -0400 |
| commit | 0883d8213bcfbeb5e0ae6dd1cbcf70494eb06dac (patch) | |
| tree | 71282de7e6a7878dbb8d8b309be625cbfcbae887 /lib/sqlalchemy/sql/elements.py | |
| parent | 1fcbc17b7dd5a5cad71ee79441aa3293c00b8877 (diff) | |
| download | sqlalchemy-0883d8213bcfbeb5e0ae6dd1cbcf70494eb06dac.tar.gz | |
Treat collation names as identifiers
The expression used for COLLATE as rendered by the column-level
:func:`.expression.collate` and :meth:`.ColumnOperators.collate` is now
quoted as an identifier when the name is case sensitive, e.g. has
uppercase characters. Note that this does not impact type-level
collation, which is already quoted.
Change-Id: I83d5d9cd1e66a4f20b96303bb84c5f360d5d6a1a
Fixes: #3785
Diffstat (limited to 'lib/sqlalchemy/sql/elements.py')
| -rw-r--r-- | lib/sqlalchemy/sql/elements.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index a450efaf0..1f8129382 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -41,12 +41,18 @@ def collate(expression, collation): mycolumn COLLATE utf8_bin + The collation expression is also quoted if it is a case sensitive + identifer, e.g. contains uppercase characters. + + .. versionchanged:: 1.2 quoting is automatically applied to COLLATE + expressions if they are case sensitive. + """ expr = _literal_as_binds(expression) return BinaryExpression( expr, - _literal_as_text(collation), + ColumnClause(collation), operators.collate, type_=expr.type) |
