MySQL Connector/Python 8.0.21 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.21 is the latest GA release version of the
MySQL Connector Python 8.0 series. The X DevAPI enables application
developers to write code that combines the strengths of the relational
and document models using a modern, NoSQL-like syntax that does not
assume previous experience writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see

http://dev.mysql.com/doc/x-devapi-userguide/en/

For more information about how the X DevAPI is implemented in MySQL
Connector/Python, and its usage, see

http://dev.mysql.com/doc/dev/connector-python

Please note that the X DevAPI requires at least MySQL Server version 8.0
or higher with the X Plugin enabled. For general documentation about how
to get started using MySQL as a document store, see

http://dev.mysql.com/doc/refman/8.0/en/document-store.html

To download MySQL Connector/Python 8.0.21, see the “General Availability
(GA) Releases” tab at

http://dev.mysql.com/downloads/connector/python/

Enjoy!

Changes in MySQL Connector/Python 8.0.21 (2020-07-13, General Availability)

Functionality Added or Changed

* Implemented context managers to define the runtime
context to establish when executing a with statement. It
was added to the Connection and Cursor objects in the
classic protocol, and to Session in the X DevAPI. Thanks
to WEN-FENG SHIH for the patch. (Bug #19586444, Bug
#71663, Bug #28779784, Bug #89113)

* Added compression support to X Protocol connections.
Supported compression algorithms are zlib/deflate and
lz4. Specifically, the supported algorithms (in order of
preference) are lz4_message and deflate_stream. The
compression threshold is set at 1000 bytes.
A new compress X DevAPI connection option accepts either
required, disabled, or preferred (default).

+ preferred: If Connector/Python and the server cannot
reach consensus on algorithm or styles, then no
compression is used; and this is logged.

+ required: Like preferred, except the connection is
terminated with an error if the connector and server
are unable to reach agreement.

+ disabled: Compression is not used.

Bugs Fixed

* The connect_timeout option applied to all blocking socket
operations but now properly only applies to the timeout
when establishing the connection. (Bug #30996790)

* In X DevAPI implementation, an error was raised when
using the fractional part in DATETIME types. The error:
“ValueError: Datetime mapping scenario unhandled” (Bug
#30950184)

* Because MySQL stores TEXT types as BLOB and JSON as
LONGBLOB, the TEXT and JSON types are now converted to
str and the rest of the BLOB types as bytes. Previously,
as an example, a column of type TEXT that only contained
digits was read as type=integer by Connector/Python. (Bug
#29808262, Bug #95437)

* Connector/Python assumed that MySQL libraries were under
lib/ when compiling the C extension, but now uses the
mysql_config flags which adds the correct include and
libraries paths. Thanks to Daniƫl van Eeden for the
patch. (Bug #29181907, Bug #93846)

On Behalf of Oracle/MySQL Engineering Team,
Balasubramanian Kandasamy