Documentation Home
MySQL Connector/C++ Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 254.7Kb
PDF (A4) - 254.0Kb


MySQL Connector/C++ Release Notes  /  Changes in MySQL Connector/C++ 1.1  /  Changes in MySQL Connector/C++ 1.1.5 (2014-11-26, General Availability)

Changes in MySQL Connector/C++ 1.1.5 (2014-11-26, General Availability)

Functionality Added or Changed

  • 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.

Bugs Fixed

  • 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.