MySQL Connector/C++ Release Notes
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
, and
charsetDir
connection options, which
correspond to the MYSQL_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
, and
MYSQL_SET_CHARSET_DIR
options for the
mysql_options()
C API function.
It is also possible to get and set the statement execution-time
limit using the
MySQL_Statement::getQueryTimeout()
and
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::variant
type, making it impossible to use Connector/C++ binaries without having
Boost installed.
(WL #7030)
For installation from MSI packages,
variant.h
and
version_info.h
were missing from the
include/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 when TableType=VIEW
and
metadataUseInfoSchema=false
.
getColumns()
did not return column
inforomation when
metadataUseInfoSchema=TRUE
.
getColumnName()
returned the display name
instead of the actual column name.
getProcedures()
returned a syntax error
when metadataUseInfoSchema=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 the
MYSQL_LIB_DIR
option.
For test suite compilation, CMake did not
pick up libmysqlclient
from the
user-specified path, even if MYSQL_LIB_DIR
and DYNLOAD_MYSQL_LIB
were given.
(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
TYPE_FORWARD_ONLY
,
Statement::executeQuery()
returns almost
immediately, but MySQL_ResultSet::next()
and
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_ResultSet::next()
and
MySQL_Prepared_ResultSet::next()
now throw an
exception when the connection is lost.
(Bug #69031, Bug #18886278)
Connection
objects shared internal state with
Statement
objects they spawned, preventing a
connection close unless the Statement
objects
were destroyed first. A connection to the server now is closed
by calling Connection::close()
and invoking
the Connection
object destructor, without
explicitly destroying the statement object.
(WL #7028)