]> 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:43:37 +0000 (16:43 -0400)
commitc99345ee9994c3ea2a5e6536cc3365f18d017cc1
tree43e68f5a4872398c6c1b0a7304c2413f942c56d5
parent7d2a581a58e9ca4ffbcb39a384ba6950a966de7a
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
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