For MySQL Connector/C++ 8.0.11 and higher, Commercial and Community distributions require the Visual C++ Redistributable for Visual Studio 2015 to work on Windows platforms. The Redistributable is available at the Microsoft Download Center; install it before installing Connector/C++.
Incompatible Change: When documents without an
_idattribute are added to a collection, the server now automatically generates IDs for them. The server determines the ID format, which should be considered opaque from the API perspective (they are no longer UUID-based). As before, no
_idattribute is generated if a document already contains one. User-provided document IDs must not conflict with IDs of other documents in the collection.
This capability requires a MySQL 8.0 GA server. If the server does not support document ID generation, the document-add operation returns an error indicating that document IDs were missing.
For X DevAPI, the generated IDs resulting from a document-add operation can be obtained using the new
Result.getGeneratedIds()method, which returns a list. For X DevAPI for C, the generated IDs can be obtained using the new
mysqlx_fetch_generated_id()function, which returns IDs one by one for successive calls, until it returns
NULLto indicate no more generated IDs are available. For both X DevAPI and X DevAPI for C, document IDs specified explicitly in added documents are not returned.
getDocumentIds(), which are now removed. The
mysqlx_fetch_doc_id(), which is now removed.
For more information, see Working with Document IDs.
A patch operation has been implemented that enables specifying a JSON-like object that describes the changes to apply to documents in a collection.
For X DevAPI, the
CollectionModifyoperation supports a new
patch()clause for patching documents. For X DevAPI for C, there are two new functions:
mysqlx_collection_modify_patch()directly executes patching on documents in a collection that satisfy given criteria.
mysqlx_set_modify_patch()adds a patch operation to a modify statement created with the
For connections to the server made using the legacy JDBC API (that is, not made using X DevAPI or X DevAPI for C), Connector/C++ 8.0 now supports an
OPT_GET_SERVER_PUBLIC_KEYconnection option that enables requesting the RSA public key from the server. For accounts that use the
sha256_passwordauthentication plugin, this key can be used during the connection process for RSA key-pair based password exchange with TLS disabled. This capability requires a MySQL 8.0 GA server, and is supported only for Connector/C++ built using OpenSSL.
Single-document methods such as
Collection.replaceOne()did not accept
expr()as the document specification, but instead treated it as a plain JSON string. (Bug #27677910)
Compiling X DevAPI and X DevAPI for C test programs failed with an error. (Bug #27610760)
Connecting with an incorrect
SSL_CAvalue could result in a memory leak. (Bug #27434254)
For debug builds, specifying a document as
_idraised an assertion rather than producing an error. (Bug #27433969)