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

MySQL Connector/Python 8.0.20 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.20 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.20, see the “General Availability
(GA) Releases” tab at

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

Enjoy!

==============================================================================

Changes in MySQL Connector/Python 8.0.20 (2020-04-27, General Availability)

Functionality Added or Changed

 * For X DevAPI applications, when creating a new
   connection, if the connection data contains several
   target hosts that have no explicit priority assigned, the
   behavior of the failover logic now is the same as if all
   those target hosts have the same priority. That is, the
   next candidate for making a connection is chosen randomly
   from the remaining available hosts. Alternatively, the
   new priority attribute optionally sets the priority for
   each host. If two hosts have the same priority then one
   is chosen at random.

Bugs Fixed

 * The fetchmany() method failed to function properly when
   the last fetch was not a full batch; and would hang.
   Thanks to Bruce Feng for the patch.
   (Bug#30608703, Bug#97830)

On Behalf of Oracle/MySQL Engineering Team
Kent Boortz

MySQL Connector/Python 8.0.19 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.19 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.19, see the “General Availability
(GA) Releases” tab at

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

Enjoy!

==============================================================================

Changes in MySQL Connector/Python 8.0.19 (2020-01-13, General Availability)


     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed


     * Added DNS SRV support.
       To automatically resolve any SRV record available in a
       target DNS server or service discovery endpoint, use the
       mysqlx+srv scheme+extension in a X DevAPI connection
       string, or mysqlx+srv for the classic protocol, or by
       enabling the dns-srv=True (or dns_srv=True) connection
       option when using keyword arguments or dictionaries.

     * Added two new connection options that evaluate during the
       TLS handshake to restrict the negotiated TLS protocols
       and ciphers; along with those configured on the server
       that can further restrict the final choices. The new
       options are tls-versions to define the allowed TLS
       protocol versions, and tls-ciphersuites for the allowed
       cipher suitess. These definitions are comma-separated,
       and accepted by the getSession() and getClient() methods.
       tls-versions: accepts one or more of the following:
       TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3. Other values
       generate an error. Example usage:
mysqlx://myserver/db?tls-versions=[TLSv1.2,TLSv1.3]
       tls-ciphersuites: accepts IANA cipher suite names, as
       listed on IANA’s TLS Cipher Suites
(https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4)
       page. Unsupported or
       unknown values are ignored. Example usage:
mysqlx://myserver/db?tls-ciphersuites=[TLS_DHE_PSK_WITH_A
       ES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256]

     * The internal X Protocol namespace changed from xplugin to
       mysqlx.
       MySQL Server removed xplugin namespace support in
       v8.0.19; for Connector/Python this means:

          + With Connector/Python v8.0.19 and higher, some X
            DevAPI Protocol operations do not function with
            MySQL Server v8.0.18 and lower, operations such as
            Schema.create_collection(), Schema.get_collections(),
            Schema.get_tables(), and Collection.create_index().

          + Connector/Python 8.0.19 can connect to MySQL Server
            8.0.18 and lower, as both the ‘xplugin’ (with deprecation
            warnings) and ‘mysqlx’ namespaces can be used.

Bugs Fixed


     * Fixed the reserved SSL authentication filed; it changed
       from 23 to 22. Thanks to Qianqian Bu for the patch. (Bug
       #30270760, Bug #96770)
       References: This issue is a regression of: Bug #29855733.

     * Fixed LOAD DATA INFILE LOCAL handling; the file handle
       was not closed. Thanks to Micah Gale for the patch. (Bug
       #29417117, Bug #94496)


On Behalf of Oracle/MySQL Engineering Team
Prashant Tekriwal

MySQL Connector/Python 8.0.18 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.18 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.18, see the “General Availability
(GA) Releases” tab at

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

Enjoy!


Changes in MySQL Connector/Python 8.0.18 (2019-10-14, General Availability)

Functionality Added or Changed


     * Added Python 3.8 support.

     * Connector/Python connections now set
       CAN_HANDLE_EXPIRED_PASSWORDS to indicate it can handle
       sandbox mode for expired passwords. This indicates that
       Connector/Python does not execute SET commands by a
       connection with an expired password, an operation that’s
       disallowed by MySQL Server 8.0.18 and higher.

     * On Windows, added platform dependent MSI installers that
       install and update Connector/Python for all supported
       Python versions on the system. Downloading and installing
       separate packages for each version is no longer required.

Bugs Fixed


     * The /usr/lib/mysqlx folder was not created after
       executing setup.py from commercial packages. (Bug
       #29959309)

     * A table scan for a float using the C Extension caused a
       memory leak. (Bug #29909157)

     * Added read_default_file as an alias for option_files to
       increase MySQLdb compatibility. (Bug #25349794, Bug
       #84389)

     * Connector/Python 8.0.17 does not properly negotiate the
       highest TLS protocol version supported by both the client
       and server. As such, because MySQL 5.6/5.7 platform
       packages (DEB and RPM) include YaSSL prior to
       5.6.45/5.7.27, and YaSSL only supports up to TLS 1.1,
       systems setting a minimum TLS protocol version above 1.1
       (such as Debian 10 that sets MinProtocol=TLSv1.2) do not
       function with Connector/Python 8.0.17.
       As a workaround, the wheel (pip) packages function
       properly as they are built using glibc and bundle OpenSSL
       instead of YaSSL.
       Connector/Python 8.0.18 adds a tls-versions option to
       define the TLS version to use.

Enjoy and thanks for the support!

MySQL Connector/Python 8.0.17 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.17 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.17, see the “General Available
(GA) releases” tab at

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

Enjoy!

======================================================================

Changes in MySQL Connector/Python 8.0.17 (2019-07-22)

Functionality Added or Changed

     * Prepared statement support was added to the C extension’s
       (use_pure=False) implementation.
       (Bug #27364973, Bug #21670979, Bug #77780)

     * Added connection attribute support for the classic
       connector; new connection attributes can be passed in
       with the “conn_attrs” connection argument. Thanks to
       Daniël van Eeden for the patch. Example usage:

           test_config = {‘user’: ‘myuser’, ‘port’:3306, ‘host’:’localhost’}
           test_config[‘conn_attrs’] = {“foo”: “bar”, “_baz”: “qux”, “hello”: “world”}
           _ = connect(**test_config)

       Default connection attributes are set for both the pure
       and c-ext implementations, but these attributes are
       different due to limitations of the client library.
       For general information about connection attributes, see
       Performance Schema Connection Attribute Tables
(https://dev.mysql.com/doc/refman/8.0/en/performance-schema-connection-attribute-tables.html).
       (Bug #21072758, Bug #77003)

     * Document fields containing arrays can now be indexed by
       setting array to true in an index fields definition.

     * Added support for the OVERLAPS and NOT OVERLAPS
       operators; which is equivalent to the SQL JSON_OVERLAPS()
       function.
       These binary operators are used with a general
       “expression operator expression” syntax; and the
       expressions return a JSON array or object. Example usage:

         [“A”, “B”, “C”] overlaps $.field

     * Added support for the “utf8mb4_0900_bin” collation added in
       MySQL Server 8.0.17.

     * Added “CONTRIBUTING.rst” and replaced “README.txt” with
       “README.rst”.

Bugs Fixed

     * Executing a Collection.find() without first fetching
       results would raise an AttributeError with an unclear
       message. (Bug #29327931)

     * An error was generated when used with the combination of
       MySQL 5.7, Python 3, and having the C-extension enabled.
       (Bug #28568665)

Enjoy and thanks for the support!

MySQL Connector/Python 8.0.5 DMR has been released

Dear MySQL users,

MySQL Connector/Python 8.0.5 dmr is the sixth development release of the
MySQL Connector Python 8.0 series. This series adds support for the new X
DevAPI. 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 MySQL Server version 5.7.12 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/5.7/en/document-store.html

To download MySQL Connector/Python 8.0.5 dmr, see the “Development Releases”
tab at
http://dev.mysql.com/downloads/connector/python/

Enjoy!



Changes in MySQL Connector/Python 8.0.5 (2017-09-28, Development Milestone)


     * Packaging Notes

     * Functionality Added or Changed

   Packaging Notes

     * MySQL Connector/Python packages are now available in two
       formats: Pure Python packages that contain only Python
       files, and packages that contain the Python files plus
       the C Extension and C Protobuf extension. Exception
       platforms are Solaris, macOS, and Windows, for which
       packages containing the Python files and C extensions are
       available but not pure Python packages. (Bug #26648417)

   Functionality Added or Changed

     * MySQL Connector/Python now supports connections to MySQL
       accounts that use the caching_sha2_password
       authentication plugin (see SHA-2 Pluggable Authentication
       (http://dev.mysql.com/doc/refman/8.0/en/caching-sha2-plug
       gable-authentication.html)). This requires MySQL server
       version 8.0.3 or higher. It also requires use of a secure
       connection because Connector/Python does not support RSA
       encryption for password exchange.

     * MySQL Connector/Python now supports an auth connection
       option to specify the authentication methanism. Permitted
       values are plain, mysql41, and external. The option name
       and value are not case sensitive.
       If the authentication mechanism is not specified, it
       defaults to plain for secure (TLS) or Unix socket
       connections, or mysql41 for insecure connections.

     * MySQL Connector/Python now supports a pure Python
       implementation of Protobuf. Consequently, the Protobuf C
       extension has become optional. Connector/Python will use
       the Python implementation if the C extension is not
       available. The Protobuf Python package is required if it
       is desired not to use the C extension.
       The version requirements are Protobuf C++ 2.6.0 or
       higher, Protobuf Python 3.0.0 or higher.

     * A mysqlx.sessions variable is now exposed to scripts that
       can be used for session-related tasks such as saving or
       loading session configuration information.

     * These methods have been added for Collection:
       add_or_replace_one(), get_one(), replace_one(), and
       remove_one().

     * These methods have been added for FindStatement and
       SelectStatement, to enable shared and exclusive locks to
       be acquired: lock_shared() and lock_exclusive().

     * There is support for new forms of comparisons that use
       the IN operator:
item IN list
item IN document path
dict IN dict

       The left-hand-side value must be castable to the JSON
       type.


Documentation
——————–

Online:
http://dev.mysql.com/doc/connector-python/en/index.html

The source distribution includes the manual in various formats under
the docs/ folder.

Reporting Bugs
——————–

We welcome and appreciate your feedback and bug reports:
http://bugs.mysql.com/

On Behalf of the MySQL/Oracle Release Engineering Team,
Prashant Tekriwal