Deprecated the
Row.get_string()
method in favor of__getitem__
. (Bug #26834200, Bug #87777)-
To increase compliance with the X DevAPI, these Connector/Python changes were made:
DatabaseObject
: Deprecated:am_i_real()
andwho_am_i()
. Added:get_session()
and thesession
property.Collection.modify()
: Deprecated:limit(x, y)
's second parameter,where(condition)
, andchange(CollectionField, ExprOrLiteral)
. Changed: themodify(condition)
condition is now mandatory.Collection.find()
: Deprecated:limit(x, y)
's second parameter and where(condition). Added:limit(x).offset(y)
.Collection.remove()
: Deprecated:limit(x, y)
's second parameter andwhere(condition)
. Changed: themodify(condition)
condition is now mandatory.Table.select()
: Deprecated:limit(x, y)
's second parameter andsort()
. Added:limit(x).offset(y)
.Table.delete()
: Deprecated:limit(x, y)
's second parameter andsort()
. Removed:delete(x)
's parameter in favor of usingwhere()
instead. Added:order_by()
.Table.update()
: Deprecated:limit(x, y)
's second parameter, and thesort()
method. Added:order_by()
.Session
: Added:get_schemas()
.Result
: Deprecated:get_document_id()
andget_generated_insert_id()
. Moved:get_affected_items_count()
to theBaseResult
class.RowResult
: Added:get_columns()
.SqlResult
: Added:has_data()
.Column
: Renamed:ColumnMetaData
toColumn
. Added properties:schema_name
,table_name
,table_label
,column_name
,column_label
,type
,length
,fractional_digits
,collation_name
,character_set_name
.
(WL #11898, WL #13058)
Because the Microsoft Visual C++ 2017 Redistributable installer deletes the Microsoft Visual C++ 2015 Redistributable registry keys that identify its installation, standalone MySQL MSIs may fail to detect the Microsoft Visual C++ 2015 Redistributable if both it and the Microsoft Visual C++ 2017 Redistributable are installed. The solution is to repair the Microsoft Visual C++ 2017 Redistributable via the Windows Control Panel to recreate the registry keys needed for the runtime detection. Unlike the standalone MSIs, MySQL Installer for Windows contains a workaround for the detection problem. (Bug #28345281, Bug #91542)
Removed MySQL Fabric support. (WL #11932)
-
An RPM package for installing ARM 64-bit (aarch64) binaries of Connector/Python on Oracle Linux 7 is now available in the MySQL Yum Repository and for direct download.
Known Limitation for this ARM release: You must enable the Oracle Linux 7 Software Collections Repository (ol7_software_collections) to install this package, and must also adjust the libstdc++7 path. See Yum's Platform Specific Notes for additional details.
The default character set changed from 'utf8' (an alias to the deprecated 'utf8mb3' character set) to 'utf8mb4'. (Bug #28188883)
-
Fixed datetime conversion compatibility between Django 2.0 and MySQL 8.0.
A workaround was to use Connector/Python's pure Python implementation instead the C extension by setting "use_pure=True" in Django's database options. (Bug #27962293, Bug #90541)
Connecting with a collation unknown to Connector/Python would yield an unknown character set error. It now properly references the unknown collation. (Bug #27277937)
-
The
get_row()
andget_rows()
behavior differed with the C (connections with CMySQLConnection) and pure Python (connections with MySQLConnection) implementations of the connector. The resolved differences are:With the pure Python implementation, all data was returned as bytearrays; while the C implementation returned all data as Python types with CMySQLConnection (cext). Both now return Python types.
With the pure Python implementation, they returned a tuple with (row(s), eof), but with the C Extension they only returned the row(s). Now both implementations return the tuple form; (row(s), eof).
For queries returning a result, with pure Python the warning count was part of the returned eof. With the C extension, warning count was only available using the warning_count property of the connection object. Related, the warning_count property was not available in the pure Python implementation. Now, result includes the warning count for both implementations.
Fetching rows using pure Python would automatically set the unread_rows property to False. With the C extension, explicitly calling the free_result() method of the connection object was required. Related, free_result() was only available with the C extension. Now, both implementations set unread_rows to False.
(Bug #22367904, Bug #27411275, Bug #27991948, Bug #27802700, Bug #28133321, Bug #27650437, Bug #79623, Bug #89305, Bug #90799, Bug #90585, Bug #90292, Bug #91107, WL #11951)