MySQL Lists are EOL. Please join:

List:General Discussion« Previous MessageNext Message »
From:daniel.horecki Date:September 28 2017 9:47am
Subject:MySQL Connector/C++ 8.0.6-dmr has been released
View as plain text  
Dear MySQL users,

MySQL Connector/C++ 8.0.6-dmr is the next development milestone release
(dmr) 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

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

and "X DevAPI Reference" at

For more information about using plain C XAPI see "XAPI Reference" at

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


Connector/C++ 8.0 requires MySQL Server version 5.7.12 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"

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

Changes in MySQL Connector/C++ 8.0.6-dmr (Not yet released, Development

    Functionality Added or Changed

      * A session now can acquire a lock for documents or rows
        returned by find or select statements, to prevent the
        returned values from being changed from other sessions
        while the lock is held (provided that appropriate
        isolation levels are used). Locks can be requested
        several times for a given find or select statement. Only
        the final request is acted upon. An acquired lock is held
        until the end of the current transaction.
        For X DevAPI, CollectionFind and TableSelect implement
        .lockExclusive() and .lockShared() methods, which request
        exclusive or shared locks, respectively, on returned
        documents or rows. These methods can be called after
        .bind() and before the final .execute().
        For XAPI, the new mysqlx_set_locking(stmt, lock) function
        can be called to request exclusive or shared locks on
        returned documents or rows, or to release locks. The lock
        parameter can be ROW_LOCK_EXCLUSIVE, ROW_LOCK_SHARED, or
        ROW_LOCK_NONE. The first two values specify a type of
        lock to be acquired. ROW_LOCK_NONE removes any row
        locking request from the statement.

      * For X DevAPI, a new auth option can be specified in
        connection strings or URIs to indicate the authentiation
        mechanism. Permitted values are PLAIN and MYSQL41. The
        option name and value are not case sensitive. The
        SessionSettings::Options object supports a new AUTH
        enumeration, with the same permitted values.
        For XAPI, a new auth setting can be specified in
        connection strings or URIs to indicate the authentiation
        mechanism. Permitted values are PLAIN and MYSQL41. The
        option name and value are not case sensitive. A new
        MYSQLX_OPT_AUTH constant is recognized by the
        mysqlx_options_set() function, with permitted values
        If the authentication mechanism is not specified, it
        defaults to PLAIN for secure (TLS) connections, or
        MYSQL41 for insecure connections. For Unix socket
        connections, the default is PLAIN.

      * These drop API changes were made:

           + Session::dropTable(schema, table) and
             Session::dropCollection(schema, coll) were replaced
             by Schema::dropTable(table) and
             Schema::dropCollection(coll), respectively.

           + Schema::dropView() is now a direct-execute method
             returning void rather than Executable.

           + All dropXXX() methods succeed if the dropped objects
             do not exist.

      * The following Collection methods were added:
        addOrReplaceOne(), getOne(), replaceOne(), and
        The addOrReplaceOne() and replaceOne() methods work only
        with MySQL 8.0.3 and higher servers. For older servers,
        they report an error.

      * Boolean expressions used in queries and statements now
        support a variant of the IN operator for which the right
        hand side operand is any expression that evaluates to an
        array or document.
        X DevAPI example:
coll.find("'car' IN $.toys").execute();

        XAPI example:
res = mysqlx_collection_find(coll, "'car' IN $.toys");

        In this form, the IN operator is equivalent to the
        JSON_CONTAINS() SQL function.

      * On Unix and Unix-like systems, Unix domain socket files
        are now supported as a connection transport for X DevAPI
        or XAPI connections. The socket file can be given in a
        connection string or in the session creation options.
        X DevAPI examples:
XSession sess("mysqlx://user:password@(/path/to/mysql.sock)/schema");

XSession sess({ SessionSettings::USER, "user",
SessionSettings::PWD, "password,
SessionSettings::SOCKET, "/path/to/mysql.sock"
SessionSettings::DB, "schema" });

        XAPI examples:
mysqlx_session_t *sess = mysqlx_get_session_from_url(
   err_buf, &err_code

mysqlx_opt_type_t *sess_opt = mysqlx_session_option_new();
   MYSQLX_OPT_SOCKET, "/path/to/mysql.sock",
   MYSQLX_OPT_USER, "user",
   MYSQLX_OPT_PWD, "password",
   MYSQLX_OPT_DB, "schema");

mysqlx_session_t *sess = mysqlx_get_session_from_options(
   sess_opt, err_buf, &err_code

    Bugs Fixed

      * Creating a TLS session with only the ssl-ca option
        specified could succeed, although it should fail if
        ssl-mode is not also specified. (Bug #26226502)

      * mysqlx_get_node_session_from_options() could succeed even
        when a preceding mysqlx_session_option_set() failed.
        (Bug #26188740)

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

MySQL Connector/C++ 8.0.6-dmr has been releaseddaniel.horecki28 Sep