SQLite 3.38.0 现已正式发布

SegmentFault

共 1313字,需浏览 3分钟

 · 2022-02-27

技术编辑:典典丨发自 思否编辑部
公众号:SegmentFault



本月 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 中没有解析的条目。


- END -

浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报