With "_bin" suffixed collation types using the pure Python implementation, TEXT fields were unexpectedly delivered as byte objects. (Bug #33987119)
Changed the
warning_count
property from private to public in the cursor class; it's used to retrieve the number of warnings generated by the previously executed operation. (Bug #27634910)Using buffered cursors with the c-ext implementation, cursor.executemany() could unexpectedly return "InternalError: No result set available" with SELECT statements. (Bug #21529893)
The MySQLConnection.set_charset_collation() method returned an UnboundLocalError exception when given a empty charset name; now the default charset is used. (Bug #21402805)
-
On macOS, compiling the C Extension implementation assumed that gcc and g++ are the default, but now checks for clang by utilizing the CC and CXX environment variables.
Thanks to Jonathan Ringer for the patch. (Bug #107841, Bug #34373612)
Selecting binary data that began with 0x00 would return as an empty string. (Bug #107568, Bug #34283402)
Calling stored procedures by their full name (database_name.procedure_name) generated a ProgrammingError SQL syntax error. (Bug #107406, Bug #34217492)
The binary protocol would unexpectedly halt when given a time value of 0. The expected behavior is to receive a 00:00:00 time when given a 0-time value payload. (Bug #91974, Bug #28491115)
Aligned the exception types raised by pure Python and the C extension when assigning a non-existent database or when executing an invalid query using the connection.info_query() method. (Bug #91315, Bug #28295478)
Destroying a connection object now raises a ProgrammingError exception stating the cursor is not connected. Before it raised a ReferenceError exception about weakly-referenced objects, which related to how cursors contain a weak reference to the connection. (Bug #76181, Bug #21463298)