在 macOS 上,官方支持的 Protobuf 版本是 3.12.0 之前的版本。(缺陷号 31390263)
实施上下文管理器以定义运行时上下文以在执行 with 语句时建立。它被添加到经典协议中的 Connection 和 Cursor 对象,以及 X DevAPI 中的 Session。感谢 WEN-FENG SHIH 提供补丁。(错误#19586444、错误#71663、错误#28779784、错误#89113)
-
为 X 协议连接添加了压缩支持。支持的压缩算法是zlib/deflate和 lz4。具体来说,支持的算法(按优先顺序排列)是 lz4_message 和 deflate_stream。压缩阈值设置为 1000 字节。
新的
compress
X DevAPI 连接选项接受required、 disabled或preferred (默认)。preferred:如果Connector/Python与服务端无法就算法或样式达成一致,则不使用压缩;这已记录下来。
required:与 preferred类似,但如果连接器和服务器无法达成协议,则连接会因错误而终止。
禁用:不使用压缩。
-
文档存储:连接器/Python 现在为集合提供 JSON 模式验证,以强制执行文档在允许插入或更新之前必须遵守的特定结构。模式验证由服务器执行,如果集合中的文档与模式定义不匹配或者服务器不支持验证,则服务器会返回一条错误消息。
该
schema.create_collection
方法添加了一个新的验证参数作为 JSON 模式规范的字典或字符串表示形式。执行级别(默认情况下为off
或strict
)strict
和架构定义按照此示例指定:coll = schema.create_collection("longlang", validation={ "level": "strict", "schema": { "id": "http://json-schema.org/geo", "$schema": "http://json-schema.org/draft-06/schema#", "description": "A geographical coordinate", "type": "object", "properties": { "latitude": { "type": "number" }, "longitude": { "type": "number" } }, "required": ["latitude", "longitude"] } })
此外,一种新
schema.modify_collection
方法允许重置现有集合的架构验证。validation
集合选项必须包含修改后的值level
或schema
值,或两者都包含。
connect_timeout 选项适用于所有阻塞套接字操作,但现在正确地仅适用于建立连接时的超时。(缺陷号 30996790)
在 X DevAPI 实现中,在 DATETIME 类型中使用小数部分时会引发错误。错误:“ValueError:未处理的日期时间映射方案”(缺陷号 30950184)
由于 MySQL 将 TEXT 类型存储为 BLOB,将 JSON 存储为 LONGBLOB,因此 TEXT 和 JSON 类型现在转换为 str,其余 BLOB 类型转换为字节。例如,以前,仅包含数字的 TEXT 类型的列被连接器/Python 读取为 type=integer。(缺陷 #29808262,缺陷 #95437)
连接器/Python 假定 MySQL 库在编译 C 扩展时位于 lib/ 下,但现在使用 mysql_config 标志来添加正确的包含和库路径。感谢 Daniël van Eeden 提供补丁。(漏洞 #29181907,漏洞 #93846)
使用 X DevAPI 时,尝试使用 Table 对象更改值会产生“‘字段列表’中的未知列‘doc’”异常。(错误#28627768,错误#27602636)