Small. Fast. Reliable.
Choose any three.
SQLite版本3.23.1(2018-04-10)
版本3.23.0(2018-04-02)中的更改:
- 使用SQLITE_ENABLE_DESERIALIZE编译时选项时,添加sqlite3_serialize()和sqlite3_deserialize()接口。
- 将TRUE和FALSE识别为常量。(出于兼容性考虑,如果存在名为“ true”或“ false”的列,则标识符引用这些列而不是布尔常量。)
- 支持运算符为“真”,“假”,“不真”和“不假”。
- 在sqlite3_db_status()中添加了SQLITE_DBSTATUS_CACHE_SPILL选项,以报告已发生的高速缓存溢出数量。
- 内置printf实现中的“ alternate-form-2”标志(“!”)现在导致字符串替换以字符而不是字节来度量宽度和精度。
- 如果虚拟表实现中的xColumn方法使用sqlite3_result_error()返回错误消息,则应优先选择该错误消息,而不是内部生成的消息。
- 在CLI中添加了-A命令行选项,以使其更易于管理
SQLite Archive文件。
- 在Zipfile虚拟表中添加对INSERT OR REPLACE,INSERT OR IGNORE和UPDATE OR REPLACE的支持。
- 增强sqlite3changeset_apply()接口,以使其免受来自故意损坏的变更集对象的攻击。
- 添加了sqlite3_normalize()
扩展功能。
- 查询优化器增强功能:
- 改进省略左连接优化,以使其在右侧表为UNIQUE但不一定为NOT NULL的情况下起作用。
- 改进下推优化,使其适用于许多LEFT JOIN。
- 添加LEFT JOIN强度降低优化,如果WHERE子句中存在可以防止LEFT JOIN的多余全空行出现在输出集中的条件,则该优化将LEFT JOIN转换为普通JOIN。
- 当用小于最大行数的rowid更新AUTOINCREMENT表时,避免不必要地写入sqlite_sequence表
。
- Bug修复:
- 修复解析器以接受有效的行值语法。门票7310e2fb3d046a5
- 修复查询计划程序,以便它考虑WHERE子句中子表达式中表值函数的参数中的依赖项。门票80177f0c226ff54
- 使用复杂的或连接的WHERE和STAT4修复错误的结果。门票ec32177c99ccac2
- 修复由于自动数据类型转换而导致表达式索引中潜在的损坏。机票343634942dd54ab
- FTS4中的断言错误。票证d6ec09eccf68cfc
- 在小于value的小于值运算符上的结果不正确。门票f484b65f3d62305
- 即使整数部分为零,也始终将非零浮点值解释为TRUE。机票36fae083b450e3a
- 将fsdir(PATH)表值函数中的问题修复为
fileio.c扩展名,如果将fsdir()表用作联接的内部表,则会导致段错误。问题已在邮件列表中报告并由签入
7ce4e71c1b7251be解决
- 当sqlite_master表损坏时,发出错误而不是断言故障或空指针取消引用,以使sqlite_sequence表根页实际上是btree-index页。入住
525deb7a67fbd647
- 修复ANALYZE命令,以便它计算名称以“ sqlite”开头的表的统计信息。入住
0249d9aecf69948d
- 针对OSSFuzz检测到的问题的其他修复
:
- 修复VACUUM上可能损坏数据库文件的无限循环。入住27754b74ddf64
- 禁止在触发器和视图的WITH子句中使用参数。入住B918D4B4E546D
- 修复行值处理中潜在的内存泄漏。入住2df6bbf1b8ca8
- 在兆字节大小的字符串上存在许多替换的情况下,请提高replace()SQL函数的性能,以免在测试期间出现OSSFuzz超时。登机fab2c2b07b5d3
- 当sqlite_master表包含CREATE TABLE AS语句时,提供适当的错误消息。以前,这会导致断言错误或空指针取消引用。OSSFuzz在GDAL项目上发现了问题。入住
D75E67654AA96
- 错误的assert()语句已删除。入住
823779d31eb09cda。
- 解决了在INTEGER PRIMARY KEY上
使用LIKE优化的问题。入住
b850dd159918af56。
版本3.23.1(2018-04-10)中的其他更改:
- 修复了新的LEFT JOIN强度折减优化中的两个问题。门票1e39b966ae9ee739
和fac496b61722daf2。
- 修复FTS5 xBestIndex方法的异常行为。票证
2b8aed9f7c9e61e8。
- 修复对未初始化的虚拟机寄存器的无害引用。机票093420fc0eb7cba7。
- 修复CLI,以便使用-DSQLITE_UNTESTABLE进行构建
- 修复eval.c扩展名,使其与PRAGMA empty_result_callbacks = ON一起使用。
- 修复generate_series虚拟表,以使其在任何约束为NULL的情况下都不会正确返回任何行。
- 解析器中的性能增强。
散列:
- SQLITE_SOURCE_ID:“ 2018-04-10 17:39:29 4bb2294022060e61de7da5c227a69ccd846ba330e31626ebcd59a94efd148b3b”
- sqlite3.c的SHA3-256:65750d1e506f416a0b0b9dd22d171379679c733e3460549754dc68c92705b5dc
一个SQLite的版本的完整列表,
在一个单一的页面和年代都还可以。
SQLite版本控制站点上提供了每个签入的详细历史记录
。