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
defaultAuth
,OPT_CONNECT_ATTR_DELETE
,OPT_CONNECT_ATTR_RESET
,OPT_LOCAL_INFILE
,pluginDir
,readDefaultFile
,readDefaultGroup
, andcharsetDir
connection options, which correspond to theMYSQL_DEFAULT_AUTH
,MYSQL_OPT_CONNECT_ATTR_DELETE
,MYSQL_OPT_CONNECT_ATTR_RESET
,MYSQL_OPT_LOCAL_INFILE
,MYSQL_PLUGIN_DIR
,MYSQL_READ_DEFAULT_FILE
,MYSQL_READ_DEFAULT_GROUP
, andMYSQL_SET_CHARSET_DIR
options for themysql_options()
C API function.It is also possible to get and set the statement execution-time limit using the
MySQL_Statement::getQueryTimeout()
andMySQL_Statement::setQueryTimeout()
methods. (Bug #73665, Bug #19479950) These methods were added:
Connection::isValid()
checks whether the connection is alive, andConnection::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::variant
type, making it impossible to use Connector/C++ binaries without having Boost installed. (WL #7030)
For installation from MSI packages,
variant.h
andversion_info.h
were missing from theinclude/cppconn
folder. (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_ADD
parameter 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 whenTableType=VIEW
andmetadataUseInfoSchema=false
.getColumns()
did not return column inforomation whenmetadataUseInfoSchema=TRUE
.getColumnName()
returned the display name instead of the actual column name.getProcedures()
returned a syntax error whenmetadataUseInfoSchema=false
.
(Bug #19505348, Bug #19147897, Bug #19244736, Bug #19505421)
The
LOCALHOST
global 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
libmysqlclient
path from theMYSQL_LIB_DIR
option.For test suite compilation, CMake did not pick up
libmysqlclient
from the user-specified path, even ifMYSQL_LIB_DIR
andDYNLOAD_MYSQL_LIB
were given.
(Bug #73427, Bug #19315635, Bug #19370844, Bug #19940663)
Connector/C++ issued a ping command every time
isClosed()
was called in aConnection
, rather than just checking whetherclose()
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
TYPE_FORWARD_ONLY
,Statement::executeQuery()
returns almost immediately, butMySQL_ResultSet::next()
andMySQL_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_ResultSet::next()
andMySQL_Prepared_ResultSet::next()
now throw an exception when the connection is lost. (Bug #69031, Bug #18886278)Connection
objects shared internal state withStatement
objects they spawned, preventing a connection close unless theStatement
objects were destroyed first. A connection to the server now is closed by callingConnection::close()
and invoking theConnection
object destructor, without explicitly destroying the statement object. (WL #7028)