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

Reply via email to