MySQL_Prepared_Statement::getMoreResults()功能已经实现,因此现在可以使用准备好的语句获取多个结果集。(漏洞 #19147677)-
Connector/C++ 现在支持
defaultAuth、OPT_CONNECT_ATTR_DELETE、OPT_CONNECT_ATTR_RESET、OPT_LOCAL_INFILE、pluginDir、readDefaultFile、readDefaultGroup和charsetDir连接选项,它们对应于C API 函数 的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和MYSQL_SET_CHARSET_DIR选项 。mysql_options()也可以使用
MySQL_Statement::getQueryTimeout()和MySQL_Statement::setQueryTimeout()方法获取和设置语句执行时间限制。(错误#73665,错误#19479950) 添加了这些方法:
Connection::isValid()检查连接是否存在,Connection::reconnect()如果连接断开则重新连接。(缺陷 #65640,缺陷 #14207722)Boost 依赖项已从连接器/C++ API 标头中删除。这些标头使用的
boost::variant类型,使得在没有安装 Boost 的情况下无法使用 Connector/C++ 二进制文件。
对于从 MSI 包安装,
variant.h文件 夹version_info.h中缺少 。include/cppconn(漏洞#19973637)对于几个有效的客户端选项,
getClientOption()没有返回值。(缺陷号 19940314)将
OPT_CONNECT_ATTR_ADD参数添加到选项列表时发生内存泄漏。(漏洞#19938970)getClientOption()如果在连接时未设置指定选项,则引发断言。(漏洞#19938922)-
纠正了几个元数据缺陷:
getTables()TableType=VIEW和 时没有返回正确的结果metadataUseInfoSchema=false。getColumns()时未返回列信息metadataUseInfoSchema=TRUE。getColumnName()返回显示名称而不是实际的列名称。getProcedures()时返回语法错误metadataUseInfoSchema=false。
(错误#19505348、错误#19147897、错误#19244736、错误#19505421)
全局变量在 Connector/C++ 代码中的
LOCALHOST两个位置被引用,这可能会导致 double-free 损坏错误。(错误#74616,错误#19910311)driver/version_info.h(包含版本宏)未包含在已安装的头文件中。(错误#73795,错误#19553971)-
纠正了几个CMake问题:
CMake可能会错误配置链接标志。
CMake没有 选项
libmysqlclient路径MYSQL_LIB_DIR对于测试套件编译,CMake没有
libmysqlclient从用户指定的路径中获取,即使MYSQL_LIB_DIR给出DYNLOAD_MYSQL_LIB了。
(错误#73427、错误#19315635、错误#19370844、错误#19940663)
Connector/C++ 每次
isClosed()在 a 中调用时 都会发出一个 ping 命令Connection,而不是仅仅检查是否close()较早调用过或在较早的操作中发生致命错误时。(缺陷 #69785,缺陷 #17186530)结果集类型设置为
TYPE_FORWARD_ONLY,Statement::executeQuery()几乎立即返回,但如果连接丢失MySQL_ResultSet::next()则MySQL_Prepared_ResultSet::next()返回 false 而不是抛出异常,从而无法区分连接丢失与结果集的正常结束。MySQL_ResultSet::next()现在MySQL_Prepared_ResultSet::next()在连接丢失时抛出异常。(漏洞 #69031,漏洞 #18886278)Connection对象与它们生成的对象共享内部状态Statement,防止连接关闭,除非Statement对象先被销毁。现在通过调用对象析构函数关闭与服务器的连接Connection::close(),Connection而无需显式销毁语句对象。