MySQL Connector/C++ 8.0.7-rc has been released

[email protected] Mon, 26 Feb 2018 18:17:56 +0100
Newsgroups gmane.comp.db.mysql.general,gmane.comp.db.mysql.packagers
Organization Oracle Corporation
Message-ID <[email protected]>
Dear MySQL users,

MySQL Connector/C++ 8.0.7-rc is the release candidate (RC)
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++ applications using X DevAPI or plain C applications using
XAPI.

To learn more about how to write applications using X DevAPI, see
"X DevAPI User Guide"

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

and "X DevAPI Reference" at

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

For more information about using plain C XAPI see "XAPI 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/

Note

Connector/C++ 8.0 requires MySQL Server version 8.0 or higher with
X Plugin enabled. For general documentation about how to get started
using MySQL as a document store, see "Using MySQL as a Document Store"

https://dev.mysql.com/doc/refman/5.7/en/document-store.html

To download MySQL Connector/C++ 8.0.7-rc, see the "Development Releases"
tab at

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

Changes in MySQL Connector/C++ 8.0.7 (2018-02-26, Release
Candidate)

    In addition to the new APIs introduced in MySQL Connector/C++
    8.0 (X DevAPI and XAPI), Connector/C++ now also supports the
    legacy API based on JDBC4. Applications written against the
    JDBC4-based API of Connector/C++ 1.1 can be also compiled
    with Connector/C++ 8.0, which is backward compatible with the
    earlier version. Such code does not require the X Plugin and
    can communicate with older versions of the MySQL Server using
    the legacy protocol. This contrasts with X DevAPI and XAPI
    applications, which expect MySQL Server 8.0.

    The legacy API is implemented as a separate library with base
    name `mysqlcppconn` as opposed to `mysqlcppconn8` library
    implementing the new APIs. For information about using the
    legacy API, refer to the documentation at
http://dev.mysql.com/doc/connector-cpp/en/connector-cpp-getting-started-examples.html. 


      * Deprecation and Removal Notes

      * Security Notes

      * X DevAPI and XAPI Notes

      * Functionality Added or Changed

      * Bugs Fixed

    Deprecation and Removal Notes

      * View and table DDL methods have been removed. It is
        preferable that SQL statements be used for such
        operations.
        Removed X DevAPI methods:
Schema.createView()
Schema.alterView()
Schema.dropView()
Schema.dropTable()

        Removed X DevAPI data types:
Algorithm
CheckOption
SQLSecurity

        Removed XAPI functions:
mysqlx_view_create
mysqlx_view_create_new
mysqlx_view_modify
mysqlx_view_modify_new
mysqlx_view_replace
mysqlx_view_replace_new
mysqlx_view_drop
mysqlx_table_drop
mysqlx_set_view_algorithm
mysqlx_set_view_security
mysqlx_set_view_definer
mysqlx_set_view_check_option
mysqlx_set_view_columns

        Removed XAPI enumerations:
mysqlx_view_algorithm_t
mysqlx_view_security_t
mysqlx_view_check_option_t

        Removed XAPI macros:
VIEW_ALGORITHM()
VIEW_SECURITY()
VIEW_DEFINER()
VIEW_CHECK_OPTION()
VIEW_COLUMNS()
VIEW_OPTION_XXX

    Security Notes

      * MySQL Connector/C++ now supports the
        caching_sha2_password authentication plugin introduced in
        MySQL 8.0 (see Caching SHA-2 Pluggable Authentication
(http://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html)), 

        with these limitations:

           + For applications that use X DevAPI or XAPI, only
             encrypted (SSL) connections can be used to connect
             to cached_sha2_password accounts. For non-SSL
             connections, it is not possible to use
             cached_sha2_password accounts.

           + For applications that use the legacy protocol, it is
             not possible to make connections to
             cached_sha2_password accounts in the following
             scenario:
                o The connection is unencrypted (OPT_SSL_MODE is
                  set to SSL_MODE_DISABLED).
                o The server public key is given using the
                  "rsaKey" option and no RSA key exchange is used
                  (OPT_GET_SERVER_PUBLIC_KEY is set to false).
             If RSA key exchange is enabled, the connection
             works.

    X DevAPI and XAPI Notes

      * It is now possible to use the Collection interface to
        create and drop indexes on document collections.
        X DevAPI example:
coll.createIndex("idx",
   R"({
     "fields": [
       { "field": "$.zip", "type": "TEXT(10)" },
       { "field": "$.count", "type": "INT UNSIGNED" }
     ]
   })"
);

coll.createIndex("loc",
   R"({
     "type": "SPATIAL",
     "fields": [ { "field": "$.coords", "type": "GEOJSON", "srid": 3128
7 } ]
   })"
);

coll.dropIndex("idx");

        XAPI example:
ret = mysqlx_collection_create_index(coll, "idx",
   R"({
     "fields": [
       { "field": "$.zip", "type": "TEXT(10)" },
       { "field": "$.count", "type": "INT UNSIGNED" }
     ]
   })"
)

ret = mysqlx_collecton_create_index(coll, "loc",
   R"({
     "type": "SPATIAL",
     "fields": [ { "field": "$.coords", "type": "GEOJSON", "srid": 3128
7 } ]
   })"
);

mysqlx_collection_drop_index(coll, "idx");


      * It is now possible to use the Session interface to create
        savepoints inside transactions and roll back a
        transaction to a given savepoint. This interface supports
        the operations provided by the SAVEPOINT, ROLLBACK TO
        SAVEPOINT, and RELEASE SAVEPOINT statements. For more
        information about these statements, see SAVEPOINT,
        ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Syntax
        (http://dev.mysql.com/doc/refman/8.0/en/savepoint.html).
        X DevAPI example:
sess.startTransaction();
string point1 = sess.setSavepoint();
sess.setSavepoint("point2");
sess.rollbackTo(point1);         // this also removes savepoint "point
2"
string point3 = sess.setSavepoint();
sess.releaseSavepoint(point3);  // explicitly remove savepoint
sess.commitTransaction();

        XAPI example:
mysqlx_trasaction_begin(sess);
const char *point1 = mysqlx_savepoint_set(sess,NULL);
mysqlx_savepoint_set(sess,"point2");
mysqlx_rollback_to(sess,point1);
const char *point3 = mysqlx_savepoint_set(sess,NULL);
mysqlx_sevepoint_release(sess,point3);
mysqlx_transaction_commit(sess);

    Functionality Added or Changed

      * MySQL Connector/C++ now implements TLS connections using
        the OpenSSL library. It is possible to build
        Connector/C++ with OpenSSL or the bundled yaSSL
        implementation of TLS. This is controlled by the WITH_SSL
        CMake option, which takes these values: bundled (build
        using bundled yaSSL code); system (build using system
        OpenSSL library, with the location as detected by CMake);
        path_name (build using OpenSSL library installed at the
        named location). For more information, see
http://dev.mysql.com/doc/dev/connector-cpp/8.0/building.html

    Bugs Fixed

      * replaceOne() and similar methods did not correctly detect
        document ID mismatches. (Bug #27246854)

      * Calling bind() twice on the same parameter for complex
        types resulted in empty values. (Bug #26962725)

On Behalf of the MySQL/Oracle Release Engineering Team,
Daniel Horecki


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql