MySQL Connector/Python Release Notes
Removed Python 2.7 and 3.5 support, and added Python 3.9 support. (Bug #89480, Bug #32144255, Bug #32192619, Bug #32001787, Bug #27477376, WL #14027, WL #14239, WL #14240)
Improved server disconnection handling of X Protocol connections now creates a log entry and returns an error message, as needed, after Connector/Python receives a connection-close notice from the server. Connector/Python detects three new types of warning notices.
Connection idle notice.
This notice applies to a server connection that remains idle
for longer than the relevant timeout setting. Connector/Python closes
the connection when it receives the notice in an active
session or while a new session is being created. An attempt to
use the invalid session returns the “Connection
closed. Reason: connection idle too long
” error
message.
Server shutdown notice.
If a connection-close notice is received in a session as a
result of a server shutdown, Connector/Python terminates the session
with the "Connection closed. Reason: server
shutdown
" error message. All other sessions that are
connected to the same endpoint are removed from the pool, if
connection pooling is used.
Connection killed notice.
If the connection being killed from another client session,
Connector/Python closes the connection when it receives the notice in
an active session or while a new session is being created. An
attempt to use the invalid session returns the
“Connection closed. Reason: connection killed by a
different session
” error message.
(WL #14212, WL #13492)
If a classic MySQL protocol connection experiences a server timeout, Connector/Python now reports more precise disconnection information from the server. (WL #14424)
On Windows, improved the MSI's "Destination Folder" dialogue to include what's being installed in this folder, such as Connector/Python example files. (Bug #32532744)
For the C-extension, executing prepared statements emitted errors when placeholders were defined without associated parameters. Now they are not executed. (Bug #32497631)
For prepared statements any type or argument was accepted, which could produce undesired results. Now the use of list or type objects for the argument is enforced, and passing in other types raise an error. (Bug #32496788)
Added Django 3.2 support while preserving compatibility with Django 2.2, 3.0, and 3.1. (Bug #32435181)
Added context manager support for pooled connections; a feature added to standard connections in 8.0.21. (Bug #32029891)
Replaced the deprecated PyUnicode_GetSize with PyUnicode_GET_LENGTH to fix the casting of Python's unicode to std::string. (Bug #31490101, Bug #99866)
Binary columns were returned as strings instead of 'bytes' or 'bytearray'. (Bug #29622520, Bug #30349010, Bug #30416704, Bug #94944, Bug #96999, Bug #97177, Bug #97723)
Prepared statements without parameters would violate the MySQL protocol by sending unnecessary extra bytes. (Bug #101479, Bug #32120659)