summaryrefslogtreecommitdiff
path: root/test/base/test_utils.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-08-11 17:42:59 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2019-08-11 19:16:38 -0400
commitf5e57f7c311288d892894edcc44d901b5bfbb3d1 (patch)
tree24f70a0f165c8fc844c5fad4dd19e0e4347ce469 /test/base/test_utils.py
parent731a20049b372ee2e0c7408519623363e22a4db4 (diff)
downloadsqlalchemy-f5e57f7c311288d892894edcc44d901b5bfbb3d1.tar.gz
Emit SET NAMES for all MySQL connections w charset
The MySQL dialects will emit "SET NAMES" at the start of a connection when charset is given to the MySQL driver, to appease an apparent behavior observed in MySQL 8.0 that raises a collation error when a UNION includes string columns unioned against columns of the form CAST(NULL AS CHAR(..)), which is what SQLAlchemy's polymorphic_union function does. The issue seems to have affected PyMySQL for at least a year, however has recently appeared as of mysqlclient 1.4.4 based on changes in how this DBAPI creates a connection. As the presence of this directive impacts three separate MySQL charset settings which each have intricate effects based on their presense, SQLAlchemy will now emit the directive on new connections to ensure correct behavior. Fixes: #4804 Change-Id: If9d7ee00d0ccaf773972b564fe455e8e9edf6627
Diffstat (limited to 'test/base/test_utils.py')
0 files changed, 0 insertions, 0 deletions