MySQL Lists are EOL. Please join:

List:General Discussion« Previous MessageNext Message »
From:daniel.horecki Date:February 26 2018 5:17pm
Subject:MySQL Connector/C++ 8.0.7-rc has been released
View as plain text  
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

Thread
MySQL Connector/C++ 8.0.7-rc has been releaseddaniel.horecki26 Feb