2
头图

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

snakesss
1.1k 声望244 粉丝

SegmentFault 思否编辑,欢迎投稿优质技术资讯!