Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/C++ 8.0.11 的变化(2018-04-19,正式发布)

MySQL Connector/C++ 8.0.11 的变化(2018-04-19,正式发布)

对于 MySQL Connector/C++ 8.0.11 及更高版本,商业和社区发行版需要 Visual C++ Redistributable for Visual Studio 2015 才能在 Windows 平台上运行。Redistributable 可在 Microsoft 下载中心获得;在安装 Connector/C++ 之前安装它。

添加或更改的功能

  • 不兼容的更改: 当没有_id属性的文档添加到集合中时,服务器现在会自动为它们生成 ID。服务器确定 ID 格式,从 API 的角度来看应该被认为是不透明的(它们不再基于 UUID)。和以前一样,_id 如果文档已经包含一个属性,则不会生成任何属性。用户提供的文档 ID 不得与集合中其他文档的 ID 冲突。

    此功能需要 MySQL 8.0 GA 服务器。如果服务器不支持文档 ID 生成,则文档添加操作会返回一个错误,指示缺少文档 ID。

    对于 X DevAPI,可以使用 Result.getGeneratedIds()返回列表的新方法获取文档添加操作生成的 ID。对于 C 的 X DevAPI,可以使用新 mysqlx_fetch_generated_id()函数获取生成的 ID,该函数会为连续的调用一个一个地返回 ID,直到返回 NULL表明不再有生成的 ID 可用。对于 X DevAPI 和 X DevAPI for C,不会返回在添加的文档中明确指定的文档 ID。

    不兼容:该getGeneratedIds()方法替换了现在已删除的getDocumentId()和 。getDocumentIds()mysqlx_fetch_generated_id()函数替换了 mysqlx_fetch_doc_id()现在已删除的 。

    有关详细信息,请参阅 使用文档 ID

  • 已实施补丁操作,允许指定类似 JSON 的对象,该对象描述要应用于集合中文档的更改。

    对于 X DevAPI,该操作支持用于修补文档CollectionModify的新子句。patch()对于 C 的 X DevAPI,有两个新功能: mysqlx_collection_modify_patch()直接对满足给定条件的集合中的文档执行修补。将修补操作添加到使用该函数 mysqlx_set_modify_patch() 创建的修改语句 。mysql_collection_modify_new()

  • 对于使用遗留 JDBC API 建立的与服务器的连接(即,不是使用 X DevAPI 或 X DevAPI for C 建立的),Connector/C++ 8.0 现在支持一个OPT_GET_SERVER_PUBLIC_KEY 连接选项,该选项允许从服务器请求 RSA 公钥。对于使用 caching_sha2_passwordsha256_password身份验证插件的帐户,此密钥可在禁用 TLS 的情况下用于基于 RSA 密钥对的密码交换的连接过程中使用。此功能需要 MySQL 8.0 GA 服务器,并且仅支持使用 OpenSSL 构建的连接器/C++。

修正错误

  • 单文档方法如 Collection.replaceOne()不接受 expr()文档规范,而是将其视为纯 JSON 字符串。(漏洞#27677910)

  • 为 C 测试程序编译 X DevAPI 和 X DevAPI 失败并出现错误。(缺陷号 27610760)

  • 连接不正确的SSL_CA值可能会导致内存泄漏。(漏洞#27434254)

  • 对于调试版本,将文档指定为 _id引发断言而不是产生错误。(漏洞#27433969)