MySQL_Prepared_Statement::getMoreResults()functionality has been implemented, so multiple result sets now can be fetched using a prepared statement. (Bug #19147677)
Connector/C++ now supports the
charsetDirconnection options, which correspond to the
MYSQL_SET_CHARSET_DIRoptions for the
mysql_options()C API function.
It is also possible to get and set the statement execution-time limit using the
MySQL_Statement::setQueryTimeout()methods. (Bug #73665, Bug #19479950)
These methods were added:
Connection::isValid()checks whether the connection is alive, and
Connection::reconnect()reconnects if the connection has gone down. (Bug #65640, Bug #14207722)
The Boost dependency was removed from the Connector/C++ API headers. These headers were using the
boost::varianttype, making it impossible to use Connector/C++ binaries without having Boost installed.
For installation from MSI packages,
version_info.hwere missing from the
include/cppconnfolder. (Bug #19973637)
For several valid client options,
getClientOption()did not return a value. (Bug #19940314)
A memory leak occurred when adding the
OPT_CONNECT_ATTR_ADDparameter to the options list. (Bug #19938970)
getClientOption()raised an assertion if the specified option was not set at connect time. (Bug #19938922)
Several metadata flaws were corrected:
getTables()did not return a correct result when
getColumns()did not return column inforomation when
getColumnName()returned the display name instead of the actual column name.
getProcedures()returned a syntax error when
(Bug #19505348, Bug #19147897, Bug #19244736, Bug #19505421)
LOCALHOSTglobal variable was referenced at two places in Connector/C++ code, which could result in a double-free corruption error. (Bug #74616, Bug #19910311)
driver/version_info.h(containing version macros) was not included in the installed header files. (Bug #73795, Bug #19553971)
Several CMake issues were corrected:
CMake could misconfigure the link flags.
CMake did not pick up the
libmysqlclientpath from the
For test suite compilation, CMake did not pick up
libmysqlclientfrom the user-specified path, even if
(Bug #73427, Bug #19315635, Bug #19370844, Bug #19940663)
Connector/C++ issued a ping command every time
isClosed()was called in a
Connection, rather than just checking whether
close()had been called earlier or when a fatal error occurred in an earlier operation. (Bug #69785, Bug #17186530)
With the result set type set to
Statement::executeQuery()returns almost immediately, but
MySQL_Prepared_ResultSet::next()returned false if the connection was lost rather than throwing an exception, making it impossible to distinguish loss of connection from normal end of the result set.
MySQL_Prepared_ResultSet::next()now throw an exception when the connection is lost. (Bug #69031, Bug #18886278)
Connectionobjects shared internal state with
Statementobjects they spawned, preventing a connection close unless the
Statementobjects were destroyed first. A connection to the server now is closed by calling
Connection::close()and invoking the
Connectionobject destructor, without explicitly destroying the statement object.