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