SQLite 3.34.0 发布了,SQLite 是一个 C 实现的 SQL 数据库引擎,它的特点是小型、快速、自包含、高可靠性和功能齐全。SQLite 嵌入在所有手机和大多数计算机中,也捆绑在为数众多的其它应用中,是世界上使用量最大的数据库引擎。
此版本更新内容包括:
- 添加了 sqlite3_txn_state() 接口,用于报告数据库连接的当前事务状态。
- 像 SQL Server 一样,增强递归公用表表达式以支持两个或多个递归术语,因为这有助于使针对图的查询更易于编写和执行。
- 改进了有关 CHECK 约束失败的错误消息。
- CLI enhancements:
- 现在,.read dot-command 除了文件名外还接受管道。
- 在 .dump dot-command 中添加了 --data-only 和 --nosys 选项。
- 在 .schema dot-command 中添加了 --nosys 选项。
- Table name quoting 在 .import dot-command 中可以正确使用。
- generate_series(START、END、STEP)表值函数扩展现在已经内置到 CLI 中。
- .databases dot-command 现在显示了由 sqlite3_db_readonly() 和 sqlite3_txn_state() 决定的每个数据库文件的状态。
- 添加了 --tabs 命令行选项,该选项可设置 .mode tabs。
- 如果无法打开以其参数命名的文件,则 --init 选项将报告错误。--init 选项现在也支持 --bail 选项。
- Query planner 改进:
- 改进了运行 DISTINCT 运算符的成本估算。
- 当使用多列索引执行 UPDATE 或 DELETE 时,如果索引中只有前面的几列对索引查找有用,则要推迟到所有 WHERE 子句约束条件被评估后再做主表查找,以防这些约束条件可以被索引后面未使用的条款覆盖,从而避免不必要的主表查找。
- 当后面的列受 IN 运算符约束时,新的 OP_SeekScan 操作码可用于提高多列索引查找的性能。
- 现在,即使一个或多个附加数据库文件是只读的,BEGIN IMMEDIATE 和 BEGIN EXCLUSIVE 命令也可以使用。
- 增强了 FTS5,以支持 trigram indexes。
- 在有数百个连接都一次访问同一数据库文件的情况下,WAL 模式 locking primitives 的性能得到了改善。
- 增强了 carray() table-valued 函数,以包含一个单参数形式,该形式使用辅助的 sqlite3_carray_bind() 接口进行绑定。
- 为了与 SQL Server 兼容,现在也可以将 substr() SQL 函数称为“substring()”。
- syntax diagrams 现在以 Pikchr 脚本的形式实现,并以 SVG 的形式呈现,以提高可读性和便于维护。
注意:本文归作者所有,未经作者允许,不得转载