MySQL Connector/C++ Release Notes
To simplify building the legacy JDBC connector with Linux
distributions that do not ship static libraries, the
MYSQLCLIENT_STATIC_LINKING
default
now is OFF
(use dynamic linking to the client
library). Previously, the default setting was
ON
and the binary distributions from Oracle
are still built with static linking.
(WL #15466)
Binary distributions from Oracle are built in C++17 mode. When
building Connector/C++ from sources, the compilation now fails if the
compiler used does not support C++17. To compile Connector/C++
applications that use X DevAPI (or if the code uses C++17),
enable C++17 support in the compiler using the
-std=c++17
option.
(WL #15429)
Connector/C++ now compiles cleanly using Clang on Windows. (WL #15290)
ZSTD sources bundled in the Connector/C++ source tree are upgraded to ZSTD 1.5.0. (Bug #34983529)
LZ4 sources bundled in the Connector/C++ source tree are upgraded to LZ4 1.9.4. (Bug #34983380)
ZLIB sources bundled in the Connector/C++ source tree are upgraded to ZLIB 1.2.13 to match the server. (Bug #34888141)
RapidJSON sources bundled in the Connector/C++ source tree are upgraded to RapidJSON 1.1.0 to match the server. (Bug #34842662)
The Connector/C++ implementation of the
authentication_oci_client
plugin (together with libmysqlclient
) now
enables using a security-token file to support ephemeral
key-pair authentication when integration with an external
identity provider is needed for classic MySQL protocol connections.
The Oracle Cloud Infrastructure CLI generates the ephemeral key pair and security
token.
In addition, applications that use the legacy JDBC API now can
set the new OPT_OCI_CLIENT_CONFIG_PROFILE
connection option to specify which profile in the configuration
file to use for authentication. It defaults to the
[DEFAULT]
profile.
(WL #15481)
The Connector/C++ legacy JDBC connector now identifies itself through
the following new connection attributes (in addition to the
connection attributes obtained from the
libmysql
client library by default):
_connector_version
to indicate the
connector version (for example, 8.0.33
).
_connector_license
to indicate the
license type of the connector, either
GPL-2.0
or Commercial
.
_connector_name
with a constant value of
mysql-connector-cpp
.
The new attributes are not configurable by applications.
Instead, the connector sets all of the attribute values, which
it determines automatically after connecting to the server. If
the libmysql
client library or MySQL Server
version being used lack support for query attributes, then
returning related connection-attribute errors is not possible.
For general information about connection attributes, see Performance Schema Connection Attribute Tables. (WL #15425)
X DevAPI: Operations attempting to modify an entire document, for example,
coll.modify("_id = 1").set("$", R"({ "name": "bar" })").execute();
emitted a server error rather than modifying the document. An
error is expected when passing in a string. To modify an entire
document, the caller should pass in a DbDoc()
document. For example:
coll.modify("_id = 1").set("$", DbDoc(R"({ "name": "bar" })")).execute();
(Bug #35046616)
X DevAPI:
When a connection was made to MySQL Router, rather than directly to
the server, closing a session using
mysqlx_session_close
was not possible. Now, the
connector no longer waits for a reply to the call before closing
the session.
(Bug #107693, Bug #34338937)
Minimum CMake version required was changed to 3.12 from the previous version, which was deprecated and produced warnings. (Bug #20422957)