MySQL Connector/NET 8.0.25 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.25 is the latest General Availability release
of the MySQL Connector/NET 8.0 series. This version supports .NET 5.0
and the X DevAPI, which 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
Connector/NET, see

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

NuGet packages provide functionality at a project level. To get the
full set of features available in Connector/NET such as availability
in the GAC, integration with Visual Studio’s Entity Framework Designer
and integration with MySQL for Visual Studio, installation through the
MySQL Installer or the stand-alone MSI is required.

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/NET 8.0.25, see

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

Installation instructions can be found at

https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html

Changes in MySQL Connector/NET 8.0.25 (2021-05-11, General
Availability)

    This release contains no functional changes and is published
    to align the version number with the MySQL Server 8.0.25
    release.

On Behalf of Oracle/MySQL Engineering Team,
Tvarita Jain

MySQL Connector/J 8.0.25 has been released

Dear MySQL users,

MySQL Connector/J 8.0.25 is the latest General Availability release of the
MySQL Connector/J 8.0 series.  It is suitable for use with MySQL Server
versions 8.0, 5.7, and 5.6.  It supports the Java Database Connectivity (JDBC)
4.2 API, and implements the X DevAPI.

This release includes the following new features and changes, also described in
more detail on

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-25.html

As always, we recommend that you check the “CHANGES” file in the download
archive to be aware of changes in behavior that might affect your application.

To download MySQL Connector/J 8.0.25 GA, see the “General Availability (GA)
Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!

Changes in MySQL Connector/J 8.0.25 (2021-05-11, General Availability)

This release contains no functional changes and is published
  to align the version number with the MySQL Server 8.0.25
  release.

On Behalf of the MySQL Engineering Team,
Surabhi Bhat

MySQL Connector/Python 8.0.25 has been released

Dear MySQL users,

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

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

Enjoy!

Changes in MySQL Connector/Python 8.0.25 (2021-05-11, General
Availability)

   This release contains no functional changes and is published
   to align the version number with the MySQL Server 8.0.25
   release.

Enjoy and thanks for the support!

On Behalf of the MySQL Engineering Team,
Nawaz Nazeer Ahamed

MySQL Connector/C++ 8.0.25 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.25 is a new release version of the MySQL
Connector/C++ 8.0 series.

Connector/C++ 8.0 can be used to access MySQL implementing Document
Store or in a traditional way, using SQL queries. It allows writing
both C++ and plain C applications using X DevAPI and X DevAPI for C.
It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

To learn more about how to write applications using X DevAPI, see
“X DevAPI User Guide” at

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

See also “X DevAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/devapi_ref.html

and “X DevAPI for C Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/xapi_ref.html

For generic information on using Connector/C++ 8.0, see

https://dev.mysql.com/doc/dev/connector-cpp/

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/C++ 8.0.25, see the “General Availability (GA)
Releases” tab at

https://dev.mysql.com/downloads/connector/cpp/

Changes in MySQL Connector/C++ 8.0.25 (2021-05-11, General
Availability)

   This release contains no functional changes and is published
   to align the version number with the MySQL Server 8.0.25
   release.

On Behalf of Oracle/MySQL Engineering Team,
Gipson Pulla

MySQL Connector/Node.js 8.0.25 has been released

Dear MySQL users,

MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.25, is a maintenance release of the
MySQL Connector/Node.js 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.

MySQL Connector/Node.js can be downloaded through npm (see
https://www.npmjs.com/package/@mysql/xdevapi for details) or from
https://dev.mysql.com/downloads/connector/nodejs/.

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/Node.js, and its usage, see
http://dev.mysql.com/doc/dev/connector-nodejs/.

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.

Changes in MySQL Connector/Node.js 8.0.25 (2021-05-11, General Availability)

   This release contains no functional changes and is published
   to align the version number with the MySQL Server 8.0.25
   release.

On Behalf of Oracle/MySQL Engineering Team,
Gipson Pulla

MySQL Connector/J 8.0.24 has been released

Dear MySQL users,

MySQL Connector/J 8.0.24 is the latest General Availability release of the
MySQL Connector/J 8.0 series.  It is suitable for use with MySQL Server
versions 8.0 and 5.7.  It supports the Java Database Connectivity (JDBC)
4.2 API, and implements the X DevAPI.

This release includes the following new features and changes, also described in
more detail on

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-24.html

As always, we recommend that you check the “CHANGES” file in the download
archive to be aware of changes in behavior that might affect your application.

To download MySQL Connector/J 8.0.24 GA, see the “General Availability (GA)
Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!

Changes in MySQL Connector/J 8.0.24 (2021-04-20, General Availability)

     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed


     * X DevAPI: For X Protocol connections, the Server now
       provides three new kinds of notifications for
       disconnections:

          + Server shutdown: This is due to a server shutdown.
            It causes Connector/J to terminate all active and
            idle sessions connected to the server in the
            connection pool with the error message “Server
            shutdown in progress”.

          + Connection idle: This is due to the connection
            idling for longer than the relevant timeout
            settings. It causes Connector/J to close the current
            connection with the error message “IO Read error:
            read_timeout exceeded”.

          + Connection killed: This is due to the connection
            being killed by another client session. It causes
            Connector/J to close the connection in the current
            session with the error message “Session was killed”.

     * A new connection property, scrollTolerantForwardOnly, has
       been introduced, which preserved the legacy behavior of
       Connector/J 8.0.17 and earlier by tolerating backward and
       absolute cursor movements on result sets of type
       ResultSet.TYPE_FORWARD_ONLY. This is for maintaining
       compatibility with legacy code that took advantage of the
       old behavior. See the description for
       scrollTolerantForwardOnly for details. (Bug #31747910)
       References: See also: Bug #30474158.

     * Connector/J now supports “userless” authentication for
       JDBC connections: When the user for the connection is
       unspecified, Connector/J uses the name of the OS user who
       runs the application for authentication with the MySQL
       server. See Connector/J: Obtaining a connection from the
       DriverManager
(https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-usagenotes-connect-drivermanager.html#connector-j-examples-connection-drivermanager)
       for more details.

     * Starting from this release, whenever an authentication
       plugin is explicitly set for the connection property
       defaultAuthenticationPlugin
(https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-connection.html#cj-conn-prop_defaultAuthenticationPlugin),
       the specified plugin takes precedence over
       the server’s default when Connector/J negotiates a plugin
       with the server. There is no behavioral change for
       Connector/J if no value is explicitly set for the
       property, in which case the server’s choice of default
       plugin takes precedence over the implicit default of
       mysql_native_password for Connector/J. See the
       description of defaultAuthenticationPlugin
(https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-connection.html#cj-conn-prop_defaultAuthenticationPlugin)
       for details.

     * In the past, for JDBC connections, when the server closed
       a session because a client was idling beyond the period
       specified by the server’s wait_timeout system variable,
       Connector/J returned a generic IO error. Connector/J now
       relays a clearer error message from the server.

Bugs Fixed


     * X DevAPI: Concurrently getting and closing multiple
       sessions from the same X DevAPI Client object might
       result in a ConcurrentModificationException thrown by
       Connector/J at the closing of a session. (Bug #31699993)

     * X DevAPI: Under some specific conditions, when using
       Deflate as the algorithm for compression of X Protocol
       connections, Connector/J threw an
       AssertionFailedException (ASSERTION FAILED: Unknown
       message type: 57). It was because when a compressed
       packet was just a few bytes longer than the size of some
       internal buffer used by a Java InflaterInputStream, the
       leftover bytes from the inflate procedure were being
       discarded by Connector/J, causing inflation of subsequent packets
       to fail. With this fix, no data bytes are discarded, and
       the inflation works as expected. (Bug #31510398, Bug
       #99708)

     * When a SecurityManager was in place, connections to a
       MySQL Server could not be established unless the client
       had been properly configured to use SASL-based LDAP
       authentication. It was because the
       AuthenticationLdapSaslClientPlugin in Connector/J
       requires a special permission to load the provider
       MySQLScramShaSasl when a SecurityManager is in place; but
       since the provider was loaded by a static initializer
       during initialization for the plugin, the lack of the
       permission was causing an error and then failures for all
       connections, even if the plugin was never used or
       enabled. This fix changes how the provider is loaded: the
       loading now happens only at the plugin instance’s
       initialization and the initialization was deferred to the
       time when the plugin is actually needed, so that
       connections that do not use SASL-based LDAP
       authentication are unaffected by security settings
       regarding the plugin. (Bug #32526663, Bug #102188)

     * When using Connector/J 8.0.23,
       ResultSetMetaData.getColumnClassName() did not return the
       correct class name corresponding to DATETIME columns.
       (Bug #32405590, Bug #102321)

     * Creation of an UpdatableResultSet failed with a
       NullPointerException when it was generated by querying a
       view with a derived value. (Bug #32338451, Bug #102131)

     * Using getLong() on the CHAR_OCTET_LENGTH column of the
       ResultSet for DatabaseMetaData.getProcedureColumns() (or
       getFunctionColumns()) resulted in a NumberOutOfRange
       exception when the column’s value exceeded 2^32 − 1. With
       this patch, the value of 2^32 − 1 is returned in the
       situation. (Bug #32329915, Bug #102076)

     * Connections to a server could not be established when the
       user supplied an implementation of the
       ConnectionPropertiesTransform interface using the
       connection property propertiesTransform. This was because
       Connector/J called PropertyKey.PORT.getKeyName() instead
       of PropertyKey.HOST.getKeyName() for getting the host
       name, and that has been corrected by this fix. (Bug
       #32151143, Bug #101596)

     * A NullPointerException was returned when a statement that
       could not be used as a ServerPreparedStatement was
       executed and the connection property useUsageAdvisor
(https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-connp-props-debugging-profiling.html#cj-conn-prop_useUsageAdvisor)
       was set to true. With this fix, a SQLException
       is returned instead. (Bug #32141210, Bug #101558)

     * Using the setSessionMaxRows() method on a closed
       connection resulted in a NullPointerException. With this
       fix, a SQLNonTransientConnectionException is thrown
       instead, with the error message “No operations allowed
       after connection closed.” (Bug #22508715)

     * Using the setObject() method for a target type of
       Types.TIME resulted in a SQLException when the value to
       be set had a fractional part, or when the value did not
       fit any pattern described in Date and Time Literals
(https://dev.mysql.com/doc/refman/8.0/en/date-and-time-literals.html).
       This patch introduced a new logic that can
       handle fractional parts; also, it performs the conversion
       according to the patterns of the literals and, when
       needed, the target data type. (Bug #20391832)

Enjoy and thanks for the support!

On Behalf of the MySQL Engineering Team,
Nawaz Nazeer Ahamed

MySQL Connector/C++ 8.0.24 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.24 is a new release version of the MySQL
Connector/C++ 8.0 series.

Connector/C++ 8.0 can be used to access MySQL implementing Document
Store or in a traditional way, using SQL queries. It allows writing
both C++ and plain C applications using X DevAPI and X DevAPI for C.
It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

To learn more about how to write applications using X DevAPI, see
“X DevAPI User Guide” at

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

See also “X DevAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/devapi_ref.html

and “X DevAPI for C Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/xapi_ref.html

For generic information on using Connector/C++ 8.0, see

https://dev.mysql.com/doc/dev/connector-cpp/

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/C++ 8.0.24, see the “General Availability (GA)
Releases” tab at

https://dev.mysql.com/downloads/connector/cpp/

Changes in MySQL Connector/C++ 8.0.24 (2021-04-20, General
Availability)

Connection Management Notes

   * Previously, for client applications that use the legacy
     JDBC API (that is, not X DevAPI or X DevAPI for C), if
     the connection to the server was not used within the
     period specified by the wait_timeout system variable and
     the server closed the connection, the client received no
     notification of the reason. Typically, the client would
     see Lost connection to MySQL server during query
     (CR_SERVER_LOST) or MySQL server has gone away
     (CR_SERVER_GONE_ERROR).
     In such cases, the server now writes the reason to the
     connection before closing it, and client receives a more
     informative error message, The client was disconnected by
     the server because of inactivity. See wait_timeout and
     interactive_timeout for configuring this behavior.
     (ER_CLIENT_INTERACTION_TIMEOUT).
     The previous behavior still applies for client
     connections to older servers and connections to the
     server by older clients.

   * For connections made using X Plugin, if client with a
     connection to a server remains idle (not sending to the
     server) for longer than the relevant X Plugin timeout
     setting (read, write, or wait timeout), X Plugin closes
     the connection. If any of these timeouts occur, the
     plugin returns a warning notice with the error code
     ER_IO_READ_ERROR to the client application.
     For such connections, X Plugin now also sends a warning
     notice if a connection is actively closed due to a server
     shutdown, or by the connection being killed from another
     client session. In the case of a server shutdown, the
     warning notice is sent to all authenticated X Protocol
     clients with open connections, with the
     ER_SERVER_SHUTDOWN error code. In the case of a killed
     connection, the warning notice is sent to the relevant
     client with the ER_SESSION_WAS_KILLED error code, unless
     the connection was killed during SQL execution, in which
     case a fatal error is returned with the
     ER_QUERY_INTERRUPTED error code.
     If connection pooling is used and a connection close
     notice is received in a session as a result of a server
     shutdown, all other idle sessions that are connected to
     the same endpoint are removed from the pool.
     Client applications can use the warning notices to
     display to users, or to analyze the reason for
     disconnection and decide whether to attempt reconnection
     to the same server, or to a different server.

Packaging Notes

   * Connector/C++ packages now include sasl2 modules due to
     connection failures for accounts that use the
     authentication_ldap_sasl authentication plugin. (Bug
     #32175836)

Bugs Fixed

   * Upon connecting to the server, Connector/C++ executed a
     number of SHOW [SESSION] VARIABLES statements to retrieve
     system variable values. Such statements involve locking
     in the server, so they are now avoided in favor of SELECT
     @@var_name statements.
     Additionally, Connector/C++ was trying to fetch the value
     of the max_statement_time system variable, which has been
     renamed to max_execution_time. Connector/C++ now uses the
     correct variable name, with the result that
     getQueryTimeout() and setQueryTimeout() now work properly
     for both Statement and Prepared Statement objects. (Bug
     #28928712, Bug #93201)

   * DatabaseMetaData.getProcedures() failed when the
     metadataUseInfoSchema connection option was false. (Bug
     #24371558)

On Behalf of the Oracle/MySQL Engineering Team,
Tvarita Jain

MySQL Connector/NET 8.0.24 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.24 is the latest General Availability release
of the MySQL Connector/NET 8.0 series. This version supports .NET 5.0
and the X DevAPI, which 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
Connector/NET, see

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

NuGet packages provide functionality at a project level. To get the
full set of features available in Connector/NET such as availability
in the GAC, integration with Visual Studio’s Entity Framework Designer
and integration with MySQL for Visual Studio, installation through the
MySQL Installer or the stand-alone MSI is required.

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/NET 8.0.24, see

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

Installation instructions can be found at

https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html

Changes in MySQL Connector/NET 8.0.24 (2021-04-20, General
Availability)

Functionality Added or Changed

   * The IgnorePrepare connection-string option was deprecated
     in the Connector/NET 8.0.23 release and removed in the
     Connector/NET 8.0.24 release.
     The removed option instructed Connector/NET to ignore all
     calls to MySqlCommand.Prepare() that were made using the
     classic MySQL protocol. (Bug #31872906)

   * Improved server disconnection handling of X Protocol
     connections now creates a log entry and returns an error
     message, as needed, after Connector/NET receives a
     connection-close notice from the server. Connector/NET
     detects three new types of warning notices.

     Connection idle notice.  This notice applies to a server
     connection that remains idle for longer than the relevant
     timeout setting. Connector/NET closes the connection when
     it receives the notice in an active session or while a
     new session is being created. An attempt to use the
     invalid session returns the “Connection closed. Reason:
     connection idle too long” error message.

     Server shutdown notice.  If a connection-close notice is
     received in a session as a result of a server shutdown,
     Connector/NET terminates the session with the “Connection
     closed. Reason: server shutdown” error message. All other
     sessions that are connected to the same endpoint are
     removed from the pool, if connection pooling is used.

     Connection killed notice.  If the connection being killed
     from another client session, Connector/NET closes the
     connection when it receives the notice in an active
     session or while a new session is being created. An
     attempt to use the invalid session returns the
     “Connection closed. Reason: connection killed by a
     different session” error message.

   * If a classic MySQL protocol connection experiences a
     server timeout, Connector/NET now reports more precise
     disconnection information to affected .NET applications
     when the server provides improved error messages.

   * Previously, Connector/NET added client support for the
     MySQL Enterprise Edition SASL LDAP authentication plugin
     with SCRAM-SHA-1 and SCRAM-SHA-256 as authentication
     methods. Connector/NET now also supports GSSAPI/Kerberos
     as an alternative authentication method for classic MySQL
     protocol connections. SASL-based LDAP authentication does
     not apply to clients running macOS.

   * The SSH Tunneling (port forwarding) feature, which was
     added to support MySQL products in making secure
     connections on Windows, is no longer needed by other
     products. Now, using an alternative such as OCI or
     SSH.NET to create a tunnel is preferred. The related
     connection options (SshHostName, SshKeyFile,
     SshPassPhrase, SshPassword, SshPort, and SshUserName) are
     no longer valid when making Connector/NET connections,
     starting with this release.

Bugs Fixed

   * Pound symbols in JSON columns were interpreted improperly
     when using accent-sensitive collation. (Bug #32429236)

   * Several data types could not be mapped by running
     Scaffold-DbContext on valid MySQL tables. This fix
     upgrades Microsoft Entity Framework libraries to the
     latest and also adds all previously excluded mappings to
     the EFCore and EFCore5 projects. (Bug #32424742, Bug
     #102381)

   * Constructing a regular expression for each read
     diminished the performance of Connector/NET. This fix
     limits the construction to one instance, which now is
     reused. (Bug #32386454, Bug #101714)

   * A data table declared using valid database.table syntax
     within an Entity Framework model could have extra
     database names in the generated query (for example,
     database.database.table). (Bug #32358174, Bug #101236)

   * Incomplete GUID mapping in the Entity Framework Core
     implementation caused an error when the Contains method
     was used to filter records. (Bug #32173133, Bug #93398)

   * Additional error codes now prevent unexpected exceptions
     after a query. Thanks to Stanislav Revin for the patch.
     (Bug #32150115, Bug #101592)

   * An exception was thrown if any CHAR(36) columns
     containing a NULL value were referenced in a query. New
     validation now checks for NULL values when the
     MySqlDbType member is Guid. (Bug #32049837, Bug #101252)

On Behalf of Oracle/MySQL Engineering Team,
Tvarita Jain

MySQL Connector/ODBC 8.0.24 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.24 is a new version in the MySQL Connector/ODBC
8.0 series, the ODBC driver for the MySQL Server.

The available downloads include both a Unicode driver and an ANSI driver
based on the same modern codebase. Please select the driver type you
need based on the type of your application – Unicode or ANSI.
Server-side prepared statements are enabled by default. It is suitable
for use with the latest MySQL server version 8.0.

This release of the MySQL ODBC driver is conforming to the ODBC 3.8
specification. It contains implementations of key 3.8 features,
including self-identification as a ODBC 3.8 driver, streaming of out (for
binary types only), and support of the SQL_ATTR_RESET_CONNECTION
connection attribute (for the Unicode driver only).

The release is now available in source and binary form for a number of
platforms from our download pages at

https://dev.mysql.com/downloads/connector/odbc/

For information on installing, please see the documentation at

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html

Enjoy and thanks for your support!


Changes in MySQL Connector/ODBC 8.0.24 (2021-04-20, General Availability)

Functionality Added or Changed


     * Previously, if the connection to the server was not used
       within the period specified by the wait_timeout system
       variable and the server closed the connection, the client
       received no notification of the reason. Typically, the
       client would see Lost connection to MySQL server during
       query (CR_SERVER_LOST) or MySQL server has gone away
       (CR_SERVER_GONE_ERROR).
       In such cases, the server now writes the reason to the
       connection before closing it, and the client receives a
       more informative error message: The client was
       disconnected by the server because of inactivity. See
       wait_timeout and interactive_timeout for configuring this
       behavior. (ER_CLIENT_INTERACTION_TIMEOUT).
       The previous behavior still applies for client
       connections to older servers and connections to the
       server by older clients.

     * If a classic MySQL protocol connection experiences a
       server timeout, Connector/ODBC now reports more precise
       disconnection information from the server.

Bugs Fixed


     * The ODBC SQLProcedureColumns function returns incomplete
       results, fetches after usage would only return the first
       40 parameters.
       The workaround was to increase the group_concat_max_len
       size, for example ‘group-concat-max-len = 1000000’ under
       [mysqld]. (Bug #32504915, Bug #102589)

     * MySQL 8.0.24 added a new ER_CLIENT_INTERACTION_TIMEOUT
       error code, and it caused the ODBC driver to report the
       wrong SQLSTATE HY000 instead of 08S01 after the
       connection is terminated on the server by
       wait_/_interactive timeout. The ODBC driver is now linked
       against libmysqlclient 8.0.24 to handle this situation.
       (Bug #32394545)

On Behalf of Oracle/MySQL Engineering Team,
Gipson Pulla

MySQL Connector/Python 8.0.24 has been released


Dear MySQL users,

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

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

Enjoy!

Changes in MySQL Connector/Python 8.0.24 (2021-04-20, General Availability)

Functionality Added or Changed

  • Removed Python 2.7 and 3.5 support, and added Python 3.9
    support. (Bug #32144255, Bug #32192619, Bug #32001787)
  • Improved server disconnection handling of X Protocol
    connections now creates a log entry and returns an error
    message, as needed, after Connector/Python receives a
    connection-close notice from the server. Connector/Python
    detects three new types of warning notices.
    Connection idle notice. This notice applies to a server
    connection that remains idle for longer than the relevant
    timeout setting. Connector/Python closes the connection
    when it receives the notice in an active session or while
    a new session is being created. An attempt to use the
    invalid session returns the “Connection closed. Reason:
    connection idle too long” error message.
    Server shutdown notice. If a connection-close notice is
    received in a session as a result of a server shutdown,
    Connector/Python terminates the session with the
    “Connection closed. Reason: server shutdown” error
    message. All other sessions that are connected to the
    same endpoint are removed from the pool, if connection
    pooling is used.
    Connection killed notice. If the connection being killed
    from another client session, Connector/Python closes the
    connection when it receives the notice in an active
    session or while a new session is being created. An
    attempt to use the invalid session returns the
    “Connection closed. Reason: connection killed by a
    different session” error message.
  • If a classic MySQL protocol connection experiences a
    server timeout, Connector/Python now reports more precise
    disconnection information from the server.

Bugs Fixed

  • For the C-extension, executing prepared statements
    emitted errors when placeholders were defined without
    associated parameters. Now they are not executed. (Bug 32497631)
  • For prepared statements any type or argument was
    accepted, which could produce undesired results. Now the
    use of list or type objects for the argument is enforced,
    and passing in other types raise an error. (Bug 32496788)
  • Added Django 3.2 support while preserving compatibility
    with Django 2.2, 3.0, and 3.1. (Bug #32435181)
  • Added context manager support for pooled connections; a
    feature added to standard connections in 8.0.21. (Bug 32029891)
  • Replaced the deprecated PyUnicode_GetSize with
    PyUnicode_GET_LENGTH to fix the casting of Python’s
    unicode to std::string. (Bug #31490101, Bug #99866)
  • Binary columns were returned as strings instead of
    ‘bytes’ or ‘bytearray’. (Bug #30416704, Bug #97177)


Enjoy and thanks for the support!

On Behalf of the MySQL Engineering Team,
Balasubramanian Kandasamy