]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Use utf8mb4 (or utf8mb3) for all things MySQL
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 24 Jun 2018 17:06:38 +0000 (13:06 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 25 Jun 2018 20:44:00 +0000 (16:44 -0400)
commitecd84ef096c320b3fade5ba4882d17e627241cb6
tree3e303d68d2c83be27445994a6609fce2ddb36ba3
parent37a0e2b278bb5dc2e6176d34c85332728fd3fe2c
Use utf8mb4 (or utf8mb3) for all things MySQL

Fixed bug in MySQLdb dialect and variants such as PyMySQL where an
additional "unicode returns" check upon connection makes explicit use of
the "utf8" character set, which in MySQL 8.0 emits a warning that utf8mb4
should be used.  This is now replaced with a utf8mb4 equivalent.
Documentation is also updated for the MySQL dialect to specify utf8mb4 in
all examples.  Additional changes have been made to the test suite to use
utf8mb3 charsets and databases (there seem to be collation issues in some
edge cases with utf8mb4), and to support configuration default changes made
in MySQL 8.0 such as explicit_defaults_for_timestamp as well as new errors
raised for invalid MyISAM indexes.

Change-Id: Ib596ea7de4f69f976872a33bffa4c902d17dea25
Fixes: #4283
Fixes: #4192
(cherry picked from commit c99345ee9994c3ea2a5e6536cc3365f18d017cc1)
doc/build/changelog/unreleased_12/4283.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/mysql/base.py
lib/sqlalchemy/dialects/mysql/mysqldb.py
lib/sqlalchemy/testing/provision.py
lib/sqlalchemy/testing/schema.py
lib/sqlalchemy/testing/suite/test_reflection.py
test/dialect/mysql/test_dialect.py
test/dialect/mysql/test_reflection.py
test/requirements.py
test/sql/test_defaults.py