Small. Fast. Reliable.
Choose any three.

SQLite版本3.8.8.1于2015-01-20

版本3.8.8(2015-01-16)中的更改:

    新的功能:

  1. 添加了PRAGMA data_version命令,该命令可用于确定数据库文件是否已被另一个进程修改。
  2. sqlite3_wal_checkpoint_v2()接口中添加了SQLITE_CHECKPOINT_TRUNCATE选项,并对 PRAGMA wal_checkpoint进行了相应的增强。
  3. 添加了sqlite3_stmt_scanstatus()接口,该接口仅在使用SQLITE_ENABLE_STMT_SCANSTATUS进行编译时可用
  4. 所述sqlite3_table_column_metadata()被增强以在正常工作 WITHOUT ROWID表和以检查表的存在,如果该列名的参数是NULL。现在,默认情况下,该接口现在也包含在构建中,而无需使用SQLITE_ENABLE_COLUMN_METADATA编译时选项。
  5. 添加了SQLITE_ENABLE_API_ARMOR编译时选项。
  6. 添加了SQLITE_REVERSE_UNORDERED_SELECTS编译时选项。
  7. 添加了SQLITE_SORTER_PMASZ编译时选项和SQLITE_CONFIG_PMASZ 开始时选项。
  8. sqlite3_config()中添加了SQLITE_CONFIG_PCACHE_HDRSZ选项, 这使应用程序可以更轻松地确定与SQLITE_CONFIG_PAGECACHE一起使用的适当内存量。
  9. VALUES子句中的行数不再受SQLITE_LIMIT_COMPOUND_SELECT的限制 。
  10. 添加了eval.c 可加载扩展,该扩展实现了将递归评估SQL的eval()SQL函数。

    性能增强:

  11. 减少平衡b树所涉及的memcpy()操作数量,使整体性能提高3.2%。
  12. 跳过扫描优化的成本估算的改进。
  13. 自动索引优化现在能够产生的局部索引,如果这是合适的。

    Bug修复:

  14. 截断日志文件后立即调用fsync(),以确保通过“ PRAGMA journal_mode = TRUNCATE”断电后的持久性。
  15. 现在,查询计划器可以识别出LEFT JOIN右侧表中的任何列都可以为NULL,即使该列具有NOT NULL约束。在这种情况下,请避免尝试优化NULL测试。修复票证 6f2222d550f5b0ee7ed
  16. 即使使用降序索引实现DISTINCT运算符,也请确保ORDER BY将行按升序排列。修复票证 c5ea805691bfc4204b1cb9e
  17. 修复了在共享缓存模式下使用多个线程运行某些线程正在打开和关闭连接时,在压力下可能发生的数据争用问题。
  18. 修复美国模糊洛普公司发现的晦涩的崩溃错误 。门票 a59ae93ee990a55
  19. 解决GCC优化器错误(适用于MacOS 10.7上的gcc 4.2.1),该错误会导致 R-Tree扩展使用-O3编译时无法计算正确的结果。

    其他变化:

  20. 除非使用-DHAVE_STRCHRNULL编译时选项专门启用了strchrnul()C库例程,否则请禁用该例程。
  21. 改进了似然性()可能性()不太可能() SQL提示函数的有效性和准确性 。

版本3.8.8.1(2015-01-20)中的其他更改:

  1. 修复了自版本3.8.4起出现的排序逻辑中的错误,该错误可能导致输出在包含ORDER BY子句,LIMIT子句且结果集中具有约60个或更多列的查询上以错误的顺序显示。机票f97c4637102a3ae72b79
  2. SQLITE_SOURCE_ID:“ 2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55”
  3. sqlite3.c的SHA1:33987fb50dcc09f1429a653d6b47672f5a96f19e

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