Small. Fast. Reliable.
Choose any three.

SQLite版本3.16.2于2017-01-06

版本3.16.0(2017-01-02)中的更改:

  1. 使用的CPU周期减少了9%。(有关如何计算此性能提升的详细信息,请参阅CPU性能评估报告。)
  2. 增加了对PRAGMA功能的实验支持。
  3. sqlite3_db_config()中添加了SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE选项。
  4. 增强日期和时间功能,以使“ unixepoch”修饰符可在受支持日期的整个范围内使用。
  5. 后备内存分配器的默认配置从每个128个字节的500个插槽更改为每个512个字节的125个插槽。
  6. 增强的“ WHERE x NOT NULL”部分索引,以便在“ x”列出现在LIKE或GLOB运算符中时可以使用。
  7. 增强的sqlite3_interrupt(),以便中断正在进行的检查点操作。
  8. 增强了LIKEGLOB匹配算法,以在模式包含多个通配符的情况下更快。
  9. 添加了SQLITE_FCNTL_WIN32_GET_HANDLE文件控件操作码。
  10. 命令行shell中添加了“ .mode quote” 。
  11. 命令行shell中添加了“ .lint fkey-indexes” 。
  12. 命令行shell中添加了.imposter dot-command
  13. 添加了Remember(V,PTR) SQL函数作为可加载的扩展
  14. SQLITE_OMIT_BUILTIN_TEST编译时选项重命名为 SQLITE_UNTESTABLE,以更好地反映使用它的含义。

    Bug修复:

  15. 修复了查询计划器中的一个长期错误,该错误在LEFT JOIN上导致错误的结果,在LEFT JOIN上,左侧表是子查询,而联接约束是来自左侧子查询的裸列名称。票证 2df0107b
  16. 在查询计划程序中正确处理整数文字-0x8000000000000000。

版本3.16.1(2017-01-03)中的其他更改:

  1. 修复了有关在触发器中使用行值的错误 (请参见故障8c9458e7),该错误在3.15.0版本中,但是直到3.16.0版本发布后才报告。

版本3.16.2(2017-01-06)中的其他更改:

  1. 修复缺少辅助索引的WITHOUT ROWID表的REPLACE语句, 以便它可以与触发器和外键一起正常使用。这是由3.16.0版中添加的性能优化引起的新错误。机票30027b613b4
  2. 修复sqlite3_value_text()接口,以便它正确地将zeroblob()生成的内容转换为所有0x00字符的字符串。这是OSS-Fuzz在3.16.1版本发布后发现的一个长期问题
  3. 修复字节码生成器,以处理FROM子句中的子查询,而FROM子句本身就是UNION ALL,其中UNION ALL的一侧是包含ORDER BY的视图。这是一个长期存在的问题,在3.16.1版本发布之后就被发现。请参阅票证 190c2507
  4. 调整sqlite3_column_count() API,使其更经常返回PRAGMA语句的值,与以前的版本中的值相同,以最大程度地减少对可能以意外方式使用该接口的应用程序的破坏。

    散列:

  5. SQLITE_SOURCE_ID:“ 2017-01-06 16:32:41 a65a62893ca8319e89e48b8a38cf8a59c69a8209”
  6. sqlite3.c的SHA1:2bebdc3f24911c0d12b6d6c0123c3f84d6946b08

一个SQLite的版本的完整列表, 在一个单一的页面和年代都还可以。 SQLite版本控制站点上提供了每个签入的详细历史记录 。