MySQL Blog Archive
For the latest blogs go to blogs.oracle.com/mysql
MySQL Connector/C++ 8.0.20 has been released

Dear MySQL users,

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

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

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

Connection Management Notes

     * For connections made using X Plugin, Connector/C++ now
       provides control over the use of compression to minimize
       the number of bytes sent over connections to the server.
       Connection URIs and SessionSettings objects permit
       explicitly specifying a compression option:

          + URI strings permit a compression option with
            permitted values of DISABLED, PREFERRED, and
            REQUIRED (not case-sensitive). Examples:
            mysqlx://user:password@host:port/db?compression=DISABLED
            mysqlx://user:password@host:port/db?compression=PREFERRED
            mysqlx://user:password@host:port/db?compression=REQUIRED

          + SessionSettings object permit a
            SessionOption::COMPRESSION option with permitted
            values of CompressionMode::DISABLED,
            CompressionMode::PREFERRED, and
            CompressionMode::REQUIRED. Example:
            mysqlx::Session sess(SessionOption::PORT, “user_name”,
                                 SessionOption::USER, “password”,
                                 SessionOption::COMPRESSION,
                                 CompressionMode::PREFERRED);

       These rules apply:

          + If compression is disabled, the connection is
            uncompressed.

          + If compression is preferred, Connector/C++
            negotiates with the server to find a compression
            algorithm supported in common on the server and
            client sides. If no common algorithm is available,
            the connection is uncompressed.

          + If compression is required, compression algorithm
            negotiation occurs as with compression preferred. If
            no common algorithm is available, the connection
            terminates with an error.
       To avoid CPU inefficiency, data packets are not
       compressed even when compression is enabled unless they
       exceed a threshold size (currently 1000 bytes; this is
       subject to change).
       See also Connection Compression with X Plugin
       (https://dev.mysql.com/doc/refman/8.0/en/x-plugin-connection-compression.html).


Packaging Notes

     * Previously, Connector/C++ binary distributions were
       compatible with projects built using MSVC 2019 (using
       either dynamic or static connector libraries) or MSVC
       2017 (using dynamic connector libraries only). Binary
       distributions now are also compatible with MSVC 2017
       using the static X DevAPI connector library. This means
       that binary distributions are fully compatible with MSVC
       2019, and fully compatible with MSVC 2017 with the
       exception of the static legacy (JDBC) connector library.


Bugs Fixed

     * For connections made using X Plugin, the last byte was
       removed from DATETIME values fetched as raw bytes. (Bug
       #30838230)

     * In X DevAPI expressions, Connector/C++ treated the JSON
       ->> operator the same as ->, rather than applying an
       additional JSON_UNQUOTE() operation. (Bug #29870832)

     * Comparison of JSON values from query results failed due
       to an extra \0 character erroneously being added to the
       end of such values. (Bug #29847865)

     * For connections made using X Plugin, warnings sent
       following result sets were not captured, and were thus
       unavailable to getWarnings(). (Bug #28047970)

On Behalf of Oracle/MySQL Release Engineering Team,
Hery Ramilison