SQLite 3.33.0 发布了,SQLite 是一个 C 实现的 SQL 数据库引擎,它的特点是小型、快速、自包含、高可靠性和功能齐全。SQLite 嵌入在所有手机和大多数计算机中,也捆绑在为数众多的其它应用中,是世界上使用量最大的数据库引擎。

此版本更新内容包括:

1.支持遵循 PostgreSQL 语法的 UPDATE FROM:

UPDATE-FROM 的想法是对 SQL 的扩展,它允许 UPDATE 语句由数据库中的其他表驱动。使用 UPDATE-FROM,可以将目标表与数据库中的其他表连接起来,以帮助计算需要更新的行以及这些行上的新值。

2.将数据库文件的最大大小增加到 281 TB。

3.扩展了 PRAGMA integrity_check 语句,以便可以选择将其限制为仅验证单个表及其索引,而不是验证整个数据库文件。

4.添加了用于执行任意精度十进制算术的十进制扩展名。

5.增强 ieee754 扩展,以使用 IEEE 754 binary64 数字。

6.CLI 增强功能:

添加了四个新的输出模式:“box”、“json”、“markdown” 和 “table”。

“column”输出模式会自动扩展列以包含最长的输出行,如果之前未设置,则自动打开 “.header”。

“quote”输出模式支持 “.separator”。

CLI 内置了十进制扩展名和 ieee754 扩展名。

7.改进 Query planner:

添加了使用 INDEXED BY 查找查询的全索引扫描(full-index-scan)查询计划的功能,该计划以前会因 “无查询解决方案”而失败。

尽管存在错误信息,但可以更好地检测丢失,不完整和 / 或不可靠的 sqlite_stat1 数据,并生成良好的查询计划。

提高了查询性能,例如 “SELECT min(x) FROM t WHERE y IN (?,?,?)”(假设在 t(x,y) 上具有索引)。

8.在 WAL 模式下,如果写入器崩溃并使 shm 文件处于不一致状态,则即使存在活动的读取事务,后续事务现在也可以恢复 shm 文件。在此版本之前,该情况下的 shm 文件恢复将导致 SQLITE_PROTOCOL 错误。