SQLite 3.38.0 现已正式发布
共 1313字,需浏览 3分钟
·
2022-02-27 16:28
本月 22 日,SQLite 3.38.0 正式发布。
SQLite 是一个小型、快速、自包含、高可靠性、全功能的嵌入式 SQL 数据库引擎,是世界上使用量最大的数据库引擎。
主要更新内容
添加了 -> 和 ->> 运算符以便于处理 JSON。新的运算符与 MySQL 和 PostgreSQL 兼容。
JSON 函数现在是内置的。不再需要使用 -DSQLITE_ENABLE_JSON1 编译时选项来启用 JSON 支持。默认情况下启用 JSON。使用新的 -DSQLITE_OMIT_JSON 编译时选项禁用 JSON 接口。
日期和时间功能的增强:
添加了 unixepoch() 函数。
添加了 auto 修饰符和 julianday 修饰符。
将 printf() SQL 函数重命名为 format() 以获得更好的兼容性。保留原始 printf() 名称作为别名以实现向后兼容性。
添加了 sqlite3_error_offset() 接口,该接口有时可以帮助将 SQL error 本地化为输入 SQL 文本中的特定字符,以便应用程序可以提供更好的错误消息。
增强了 virtual tables 的接口如下:
添加了 sqlite3_vtab_distinct() 接口。
添加了 sqlite3_vtab_rhs_value() 接口。
添加了新的 operator 类型 SQLITE_INDEX_CONSTRAINT_LIMIT 和 SQLITE_INDEX_CONSTRAINT_OFFSET。
添加了 sqlite3_vtab_in() 接口(及相关接口)以使虚拟表能够一次处理所有 IN operator 约束,而不是单独处理 IN operator 右侧的每个值。
CLI 增强功能:
Columnar output modes 得到增强,可以正确处理嵌入在文本中的制表符和换行符。
向 Columnar output modes 添加了“--wrap N”、“--wordwrap on”和“--quote”等选项。
添加了 .mode qbox 别名。
.import 命令自动消除列名的歧义。
使用新的 sqlite3_error_offset() 接口提供更好的错误消息。
Query planner 增强功能:
使用 Bloom filter 来加速大型分析查询。
使用 balanced merge tree 来评估具有 ORDER BY 子句的 UNION 或 UNION ALL 复合 SELECT 语句。
改变了 ALTER TABLE 语句,当 PRAGMA writable_schema=ON 时,静默忽略 sqlite_schema table 中没有解析的条目。