Connector/C++ 现在支持在 MySQL 8.0.17 中
utf8mb4_0900_bin
为 Unicode 字符集添加的排序规则。utf8mb4
有关此归类的更多信息,请参阅Unicode 字符集。
Connector/C++ 现在可以使用 C++14 编译器进行干净的编译。这包括 MSVC 2017。出于兼容性原因,来自 Oracle 的二进制分发版仍然使用 MSVC 2015 在 C++11 模式下构建。
-
Connector/C++ 现在支持JSON 数组或对象表达式 的
OVERLAPS
和 运算符:NOT OVERLAPS
expr OVERLAPS expr expr NOT OVERLAPS expr
假设一个集合有这些内容:
[{ "_id": "1", "list": [1, 4] }, { "_id": "2", "list": [4, 7] }]
这个操作:
auto res = collection.find("[1, 2, 3] OVERLAPS $.list").fields("_id").execute(); res.fetchAll();
应该返回:
[{ "_id": "1" }]
这个操作:
auto res = collection.find("$.list OVERLAPS [4]").fields("_id").execute(); res.fetchAll();
应该返回:
[{ "_id": "1" }, { "_id": "2" }]
如果应用程序使用任一运算符而服务器不支持它,则会发生错误。
-
对于传递给
Collection::createIndex()
方法(对于 X DevAPI 应用程序)或mysqlx_collection_create_index()
函数(对于 C 应用程序的 X DevAPI)的索引规范,Connector/C++ 现在支持索引数组字段。单个索引字段描述可以包含一个带有值的新成员array
名称Boolean
。如果设置为true
,则假定该字段包含给定类型的元素数组。例如:coll.createIndex("idx", R"({ "fields": [{ "field": "foo", "type": "INT", "array": true }] })" );
此外,可能的索引字段数据类型集(用作
type
索引字段描述中成员的值)用 type 扩展 ,其中长度是强制性的。例如:CHAR(
N
)N
coll.createIndex("idx", R"({ "fields": [{ "field": "foo", "type": "CHAR(10)" }] })" );
以前,Connector/C++
INT
在所有整数结果集列的结果集元数据中报告,这要求应用程序检查列长度以确定特定的整数类型。元数据现在报告整数列的更具体TINYINT
的 、SMALLINT
、MEDIUMINT
、INT
和 或BIGINT
类型。(漏洞 #29525077)
在现有对象上调用诸如
.fields()
或 之类的方法.sort()
不会覆盖任何先前调用的效果。(漏洞#29402358)当 Connector/C++ 应用程序在建立新连接时向服务器报告连接属性时,某些属性取自构建 Connector/C++ 的主机,而不是运行应用程序的主机。现在发送应用程序主机属性。(漏洞#29394723)
-
对象上的以下形式
CollectionFind
的赋值调用了复制赋值运算符,这不是最佳的并且阻止了使用准备好的语句重新执行语句的可能性:find = find.limit(1);
(漏洞 #29390170)
-
这种形式的法律结构无法编译:
for (string id : res.getGeneratedIds()) { ... }
(漏洞 #29355100)
在构建配置期间,CMake可能会报告不正确的 OpenSSL 版本。(漏洞#29282948)