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)