MySQL Connector/Python Release Notes
Added support for OpenSSL 3.0. (WL #14815)
Added or renamed collations to align with MySQL Server 8.0.30.
This includes adding support for language-specific
utf8mb4 collations and renaming all existing
utf8_ collations to
utf8mb3_. In addition,
utf8 is now an alias for
utf8mb4. Support for MySQL 5.7 collations is
preserved for connections to a MySQL 5.7 server.
(WL #15212)
Implemented an authentication mechanism to instantiate only required authentication plugins according to the authentication handshake performed with MySQL Server. Previously, all available authentication plugins (and their associated third-party modules) were loaded upon initialization. (WL #14822)
Improved PEP 7 and PEP 8 style guideline enforcement by adding
Black and Isort tooling
for PEP 8, and clang-format for PEP 7. The
integration includes git pre-commit hooks.
In addition, Pylint was also tested and
integrated with a git pre-commit hook.
(WL #15035, WL #15137)
Removed support for the bdist_deb,
bdist_macos, and bdist_rpm
build targets from setup.py. Instead, use
the packages built by Oracle Release Engineering.
(WL #15176)
Empty strings ("") in the collection fields
used in methods like set() that are chained
with modify()are no longer allowed; now only
the dollar sign ($) is allowed when trying to
replace the entire document.
(Bug #34260344)
The required version of protobuf is now
3.11.0 through 3.20.1, inclusive, due to a breaking change
introduced in Python protobuf 4.21.0.
(Bug #34231226)
C extension and pure Python cursor types are not interchangeable when using connection objects that are not of the same type; now we check for supported cursor classes and raise a ProgrammingError if the cursor is not of a compatible type. (Bug #34223015)
The C Extension did not function with the
NO_BACKSLASH_ESCAPES SQL mode
enabled. We fix this by calling the
mysql_real_escape_string_quote() C API
function instead of
mysql_real_escape_string_quote(). Prior to
upgrading to this release, you can work around this problem by
using the pure Python implementation instead
(use_pure=True).
(Bug #107434, Bug #34228442)
For Django, allow setting the connection isolation level with an
isolation_level OPTIONS entry
in the Django DATABASES configuration.
(Bug #107174, Bug #34127959)
The connect() method's
failover argument now accepts a tuple, as was
documented, when previously it accepted only a list of
dictionaries.
Thanks to Ville Skyttä for the patch. (Bug #106632, Bug #33923516)
For Django, added the missing
DatabaseIntrospection
_parse_constraint_columns() method.
(Bug #105993, Bug #33827760)
Fixed potential rounding errors when using arithmetic expressions with decimal data types; decimal values are no longer quoted. (Bug #92790, Bug #28821983)
Disabled SSL usage with Unix socket connections. (Bug #91552, Bug #92260, Bug #28295504, Bug #28880051)