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 错误。