本月 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中没有解析的条目。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。