Small. Fast. Reliable.
Choose any three.
SQLite版本3.8.8.2于2015-01-30
版本3.8.8(2015-01-16)中的更改:
新的功能:
- 添加了PRAGMA data_version命令,该命令可用于确定数据库文件是否已被另一个进程修改。
- 在sqlite3_wal_checkpoint_v2()接口中添加了SQLITE_CHECKPOINT_TRUNCATE选项,并对
PRAGMA wal_checkpoint进行了相应的增强。
- 添加了sqlite3_stmt_scanstatus()接口,该接口仅在使用SQLITE_ENABLE_STMT_SCANSTATUS进行编译时可用。
- 所述sqlite3_table_column_metadata()被增强以在正常工作
WITHOUT ROWID表和以检查表的存在,如果该列名的参数是NULL。现在,默认情况下,该接口现在也包含在构建中,而无需使用SQLITE_ENABLE_COLUMN_METADATA编译时选项。
- 添加了SQLITE_ENABLE_API_ARMOR编译时选项。
- 添加了SQLITE_REVERSE_UNORDERED_SELECTS编译时选项。
- 添加了SQLITE_SORTER_PMASZ编译时选项和SQLITE_CONFIG_PMASZ
开始时选项。
- 在sqlite3_config()中添加了SQLITE_CONFIG_PCACHE_HDRSZ选项,
这使应用程序可以更轻松地确定与SQLITE_CONFIG_PAGECACHE一起使用的适当内存量。
- VALUES子句中的行数不再受SQLITE_LIMIT_COMPOUND_SELECT的限制
。
- 添加了eval.c
可加载扩展,该扩展实现了将递归评估SQL的eval()SQL函数。
性能增强:
- 减少平衡b树所涉及的memcpy()操作数量,使整体性能提高3.2%。
- 跳过扫描优化的成本估算的改进。
- 的自动索引优化现在能够产生的局部索引,如果这是合适的。
Bug修复:
- 截断日志文件后立即调用fsync(),以确保通过“ PRAGMA journal_mode = TRUNCATE”断电后的持久性。
- 现在,查询计划器可以识别出LEFT JOIN右侧表中的任何列都可以为NULL,即使该列具有NOT NULL约束。在这种情况下,请避免尝试优化NULL测试。修复票证
6f2222d550f5b0ee7ed。
- 即使使用降序索引实现DISTINCT运算符,也请确保ORDER BY将行按升序排列。修复票证
c5ea805691bfc4204b1cb9e。
- 修复了在共享缓存模式下使用多个线程运行某些线程正在打开和关闭连接时,在压力下可能发生的数据争用问题。
- 修复美国模糊洛普公司发现的晦涩的崩溃错误
。门票
a59ae93ee990a55。
- 解决GCC优化器错误(适用于MacOS 10.7上的gcc 4.2.1),该错误会导致
R-Tree扩展使用-O3编译时无法计算正确的结果。
其他变化:
- 除非使用-DHAVE_STRCHRNULL编译时选项专门启用了strchrnul()C库例程,否则请禁用该例程。
- 改进了似然性(),可能性()和不太可能() SQL提示函数的有效性和准确性
。
版本3.8.8.1(2015-01-20)中的其他更改:
- 修复了自版本3.8.4起出现的排序逻辑中的错误,该错误可能导致输出在包含ORDER BY子句,LIMIT子句且结果集中具有约60个或更多列的查询上以错误的顺序显示。机票f97c4637102a3ae72b79。
版本3.8.8.2(2015-01-30)中的其他更改:
- 增强sqlite3_wal_checkpoint_v2(TRUNCATE)接口,以便即使没有检查点工作也可以将WAL文件截断。
- SQLITE_SOURCE_ID:“ 2015-01-30 14:30:45 7757fc721220e136620a89c9d28247f28bbbc098”
- sqlite3.c的SHA1:85ce79948116aa9a087ec345c9d2ce2c1d3cd8af
一个SQLite的版本的完整列表,
在一个单一的页面和年代都还可以。
SQLite版本控制站点上提供了每个签入的详细历史记录
。