For connections to the server made using the legacy JDBC API (that is, not made using X DevAPI or X DevAPI for C), the default connection character set is now
utf8mb4
rather thanutf8
. Connections to the server made using X DevAPI or X DevAPI for C continue to use the connection character set determined by the server. (Bug #28204677)
Connector/C++ 32-bit MSI packages are now available for Windows. These 32-bit builds enable use of the legacy JDBC connector. (WL #12262)
-
Connector/C++ compressed tar file packages are now available for Solaris.
It is also possible to build Connector/C++ from source on Solaris. For platform-specific build notes, see Building Connector/C++ Applications: Platform-Specific Considerations. (WL #11655)
-
Connector/C++ now provides connection pooling for applications using X Protocol. This capability is based on client objects, a new type of X DevAPI object. A client can be used to create sessions, which take connections from a pool managed by that client. For a complete description, see Connecting to a Single MySQL Server Using Connection Pooling.
X DevAPI example:
using namespace mysqlx; Client cli("user:password@host_name/db_name", ClientOption::POOL_MAX_SIZE, 7); Session sess = cli.getSession(); // use sess as before cli.close(); // close session sess
X DevAPI for C example:
char error_buf[255]; int error_code; mysqlx_client_t *cli = mysqlx_get_client_from_url( "user:password@host_name/db_name", "{ \"maxSize\": 7 }", error_buf, &error_code ); mysqlx_session_t *sess = mysqlx_get_session_from_client(cli); // use sess as before mysqlx_close_client(cli); // close session sess
(WL #11929)
-
For X DevAPI, a new
connect-timeout
option can be specified in connection strings or URIs to indicate a connection timeout in milliseconds. TheSessionSettings::Options
object supports a newCONNECT_TIMEOUT
option.For X DevAPI for C, the
mysqlx_opt_type_t
constant isMYSQLX_OPT_CONNECT_TIMEOUT
together with theOPT_CONNECT_TIMEOUT()
macro.If no timeout option is specified, the default is 10000 (10 seconds). A value of 0 disables the timeout. The following examples set the connection timeout to 10 milliseconds:
X DevAPI examples:
Session sess("user@host/db?connect-timoeut=10"); Session sess(..., SessionOption::CONNECT_TIMEOUT, 10, ...); Session sess( ..., SessionOption::CONNECT_TIMEOUT, std::chrono::milliseconds(10), ... );
X DevAPI for C example:
mysqlx_session_options_t *opt = mysqlx_session_options_new(); mysqlx_session_option_set(opt, ..., OPT_CONNECT_TIMEOUT(10), ...);
(WL #12148)
JSON: Connector/C++ now uses RapidJSON for improved performance of operations that involve parsing
JSON
strings. There are no user-visible API changes for X DevAPI or X DevAPI for C. (WL #12292)
On SLES 15, Connector/C++ installation failed if
libmysqlcppcon7
was already installed. (Bug #28658120)Applications that were statically linked to the legacy JDBC connector could encounter a read access violation at exit time due to nondeterministic global destruction order. (Bug #28525266, Bug #91820)
Configuring with
-DCMAKE_BUILD_TYPE=Release
did not work on Linux. (Bug #28045274)Field references in
.having()
expressions could be interpreted incorrectly and produce errors. (Bug #26310713)