Added Django 3.0 support while preserving compatibility with Django 2.2. Removed support for Django 1.11 with Python 2.7. (Bug #91699, Bug #99069, Bug #28367300, Bug #30835272, WL #13380)
Refactored the Connector/Python build system by removing artifacts of old implementations, improved debugging, and now statically link the C extensions. This also exposes the distutils commands, to allow the end-user build packages. (Bug #79766, Bug #81203, Bug #81242, Bug #87493, Bug #99923, Bug #23194976, Bug #23208553, Bug #26660893, Bug #31529348, WL #13997)
Previously, the client-side mysql_clear_password authentication plugin was not supported. Now, it is permitted to send passwords without hashing or encryption by using mysql_clear_password on the client side together with any server-side plugin that needs a clear text password, such as for LDAP pluggable authentication. Connector/Python returns an exception if the mysql_clear_password plugin is requested but the connection is neither encrypted nor using Unix domain sockets. For usage information, see Client-Side Cleartext Pluggable Authentication. (WL #13994)
Connections made using the MySQL Enterprise Edition SASL LDAP authentication plugin now are supported on Windows and Linux, but not on macOS. Connector/Python implements the
SCRAM-SHA-1
authentication method of the SASL authentication protocol. (WL #14110)-
The new compression-algorithms connection option sets the order by which supported algorithms are negotiated and selected to send compressed data over X Protocol connections. The algorithms available are specified by the server and currently include: lz4_message, deflate_stream, and zstd_stream. Supported algorithm aliases are lz4, deflate, and zstd. Unknown or unsupported values are ignored.
Example usage:
session = mysqlx.get_session({ "host": "localhost", "port": 33060, "user": "root", "password": "s3cr3t", "compression": "required", "compression-algorithms": ["lz4', "zstd_stream"] })
(WL #13995)
For enhanced security of the existing
allow_local_infile
connection string option, the newallow_local_infile_in_path
option allows restricting LOCAL data loading to files located in this designated directory. (WL #14098)The pure Python and C extension implementations were combined into a single package; this applies to both DEB and RPM packages. (WL #13985)
Fixed a memory leak in the C-extension implementation when using the Decimal data type. Thanks to Kan Liyong for the patch. (Bug #31335275, Bug #99517)
Copyright and License headers were missing in the Python modules generated by protoc. (Bug #31267800)
When creating an index on a collection, if a collation was specified but the field is not of the type TEXT, then an error message was generated with a wrong field type. It'd always report it as GEOJSON. (Bug #27535063)
The reset connection command was missing from the C-extension implementation, which is required to reuse a connection from the pool. As such, connection pooling is now allowed with the C-extension implementation. (Bug #20811567, Bug #27489937)