Release History Of SQLite
Release History
此页面提供了SQLite更改的高级摘要。有关更多详细信息,请参阅http://www.sqlite.org/src/timeline和http://www.sqlite.org/src/timeline?t=release上的化石检查日志。请参阅年表简要发布的列表。
2017-10-24 (3.21.0)
- 在可用时利用F2FS文件系统中的原子写入功能,大大降低事务开销。这当前需要SQLITE_ENABLE_BATCH_ATOMIC_WRITE编译时选项。
Hashes:
- SQLITE_SOURCE_ID: "2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de48827"
2017-08-24 (3.20.1)
- 修复新的sqlite3_result_pointer()接口中的潜在内存泄漏。确认号7486aa54b968e9b5。
哈希表:
2017-08-01 (3.20.0)
- 更新由sqlite3_errmsg()返回的一些错误代码的错误消息的文本。
2017-06-17 (3.18.2)
- 修复在WHERE子句中使用IN运算符时可能导致重复输出行的错误。Ticket61fe9745。
哈希表:
2017-06-16 (3.18.1)
- 修复可能导致数据库损坏的与auto_vacuum相关的错误。该错误在版本3.16.0(2017-01-02)中引入Ticket fda22108。
哈希表:
2017-06-08 (3.19.3)
- 修复可能导致数据库损坏的与auto_vacuum相关的错误。该错误在版本3.16.0(2017-01-02)中引入。Ticket fda22108。
哈希表:
2017-05-25 (3.19.2)
- 修复LEFT JOIN展平优化中的更多错误。Ticket 7fde638e94287d2c。
哈希表:
2017-05-24 (3.19.1)
- 修复LEFT JOIN展平优化中的错误。Ticket cad1ab4cb7b0fc。
2017-05-22 (3.19.0)
- SQLITE_READ授权人回调被调用一次,其中列名是一个空字符串,用于查询中未引用任何列的查询中引用的每个表。
2017-03-30 (3.18.0)
- 增加了PRAGMA optimize命令
2017-02-13 (3.17.0)
- R-Tree扩展性能提高约25%。
2017-01-06 (3.16.2)
- 修复缺少二级索引的WITHOUT ROWID表的REPLACE语句,以便它可以正确使用触发器和外键。这是由版本3.16.0中添加的性能优化引起的一个新bug。Ticket30027b613b4
2017-01-03 (3.16.1)
- 修复版本3.15.0中触发器中使用行值的错误(请参阅故障单8c9458e7),但直到发布3.16.0版本之后才会报告。
哈希表:
2017-01-02 (3.16.0)
- 使用9%的CPU周期。(有关如何计算性能提升的详细信息,请参阅CPU性能测量报告。)
2016-11-28 (3.15.2)
- 修复了在3.15.0版本中引入的行值逻辑。
2016-11-04 (3.15.1)
- 增加了SQLITE_FCNTL_WIN32_GET_HANDLE文件控制操作码。
2016-10-14 (3.15.0)
- 增加了对行值的支持。
2016-09-12 (3.14.2)
- 改进了对winsqlite3.dll中使用STDCALL调用约定的支持。
2016-08-11 (3.14.1)
- 对页缓存“截断”操作的性能增强可将具有大页缓存的系统的COMMIT时间缩短几十毫秒。
2016-08-08 (3.14)
用自制饼馅饼庆祝SQLite“π版本”。
- 增加了对WITHOUT ROWID虚拟表的支持。
2016-05-18 (3.13.0)
- 尽可能推迟与TEMP文件相关的I/O,希望最终完全避免I/O。
2016-04-18 (3.12.2)
- 修复版本3.12.0和3.12.1中的向后兼容性问题:声明为
"INTEGER" PRIMARY KEY
(带有datatype关键字周围的引号)的列未被识别为INTEGER PRIMARY KEY,导致数据库文件不兼容。ticket7d7525cb01b68
2016-04-08 (3.12.1)
- 修复版本3.12.0引入的边界条件错误,可能导致严重SAVEPOINT使用期间发生崩溃。ticket7f7f8026eda38。
2016-04-01 (3.9.3)
- 向后移植一个简单的查询规划器优化,允许IS操作员在LEFT OUTER JOIN上驱动索引。版本3.9.2基线没有其他更改。
2016-03-29 (3.12.0)
Potentially Disruptive Change:
- SQLITE_DEFAULT_PAGE_SIZE从1024增加到4096. SQLITE_DEFAULT_CACHE_SIZE从2000更改为-2000,因此默认使用相同数量的高速缓存。有关更多信息,请参阅3.12.0版页面大小更改的应用说明。
性能增强:
2016-03-03 (3.11.1)
- VisualStudio使用的Makefile和构建脚本的改进。
2016-02-15 (3.11.0)
General improvements:
- 增强的WAL模式,使其可以高效处理大于cache_size的事务。
2016-01-20 (3.10.2)
Critical bug fix:
- 版本3.10.0在LIKE运算符中引入了一个由此修补程序版本修复的个案折叠错误。Ticket80369eddd5c94。
其他杂项错误修复:
2016-01-14 (3.10.1)
New feature:
- 添加SQLITE_FCNTL_JOURNAL_POINTER文件控件。
错误修复:
2016-01-06 (3.10.0)
General improvements:
- 在虚拟表上增加了对LIKE,GLOB和REGEXP操作符的支持。
2015-11-02 (3.9.2)
- 修复模式解析器,以便它将某些(模糊和格式不清的)CREATE TABLE语句解释为与传统相同。Fix for ticketac661962a2aeab3c331
2015-10-16 (3.9.1)
- 为了符合RFC-7159的规定,修正json1扩展,使其不能识别ASCII空格作为空白字符。Fix for ticket57eec374ae1d0a1d
2015-10-14 (3.9.0)
Policy Changes:
- SQLite的版本编号约定被修改为使用新兴的语义版本标准。
新功能和增强功能:
2015-07-29 (3.8.11.1)
- 还原PRAGMA cache_size的未记录副作用:如果数据库先前未被访问,则强制数据库模式进行解析。
2015-07-27 (3.8.11)
- 增加了实验RBU扩展。请注意,此扩展程序是实验性的,可能会以不兼容的方式进行更改。
2015-05-20 (3.8.10.2)
- 修复版本3.8.7引入的索引损坏问题。如果表中有两个将键值转换为INTEGER并再次转换为TEXT的嵌套触发器,则带有TEXT键的索引可能会被INSERT损坏到相应的表中。Ticket34cd55d68e0
2015-05-09 (3.8.10.1)
- 使sqlite3_compileoption_used()响应SQLITE_ENABLE_DBSTAT_VTAB编译时选项。
2015-05-07 (3.8.10)
- 添加了sqldiff.exe实用程序来计算两个SQLite数据库文件之间的差异。
2015-04-08 (3.8.9)
- 添加VxWorks-7作为官方支持和测试的平台。
2015-02-25 (3.8.8.3)
- 修复如果部分索引的限定约束出现在LEFT JOIN的ON子句中,则可能导致错误结果的错误(票据2326c258d02ead33)。
2015-01-30 (3.8.8.2)
- 增强sqlite3_wal_checkpoint_v2(TRUNCATE)接口,以便即使没有检查点工作完成,它也会截断WAL文件。
2015-01-20 (3.8.8.1)
- 修复排序逻辑中的错误,自3.8.4版本开始,可能会导致输出在包含ORDER BY子句,LIMIT子句以及结果集中大约有60个或更多列的查询中出现错误顺序。门票f97c4637102a3ae72b79。
2015-01-16 (3.8.8)
New Features:
- 添加了可用于确定数据库文件是否已被其他进程修改的PRAGMA data_version命令。
2014-12-09 (3.8.7.4)
- 错误修复:添加一个从以前版本中省略的互斥体。
2014-12-05 (3.8.7.3)
- 错误修复:确保缓存的KeyInfo对象(对应用程序不可见的内部抽象)在共享高速缓存模式下运行时不会过时,并且在同一个共享高速缓存上持续打开其他数据库连接时会频繁关闭和重新打开某些数据库连接。Tickete4a18565a36884b00edf。
2014-11-18 (3.8.7.2)
- 增强ROLLBACK命令,以便在架构未更改的情况下允许挂起的查询继续。以前,ROLLBACK会导致所有挂起的查询失败,并出现SQLITE_ABORT或SQLITE_ABORT_ROLLBACK错误。如果ROLLBACK修改了模式,那么该错误仍然会返回。
2014-10-29 (3.8.7.1)
- 在PRAGMA journal_mode = TRUNCATE模式下,截断日志文件后立即调用fsyncTicket()以确保事务在断电时持续。
2014-10-17 (3.8.7)
Performance Enhancements:
- 与前一版本相比,许多微型优化可在相同数量的CPU周期内实现20.3%的更多工作量。自3.8.0版本以来的累积性能提升为61%。(使用cachegrind对Ubuntu 13.10 x64 上的speedtest1.c工作负载进行测量,使用gcc 4.8.1和-Os,您的性能可能会有所不同。)
2014-08-15 (3.8.6)
- 在SQL解析器中添加了对十六进制整数文字的支持。(例如:0x123abc)
2014-06-04 (3.8.5)
- 增加了对索引部分排序的支持。
2014-04-03 (3.8.4.3)
- 添加一个单字符的修复程序,解决可能会在查询中导致查询结果不正确的问题,这些查询会在子查询中混合DISTINCT,GROUP BY和ORDER BY。Ticket98825a79ce14。
2014-03-26 (3.8.4.2)
- 修复尝试搜索损坏的数据库文件时可能导致的潜在的缓冲区重读。
2014-03-11 (3.8.4.1)
- 解决C预处理器宏冲突问题,该冲突会破坏使用Microsoft Visual Studio进行某些配置的构建。
2014-03-10 (3.8.4)
- 代码优化和重构以提高性能。
2014-02-11 (3.8.3.1)
- 修复了使用SQLITE_ENABLE_STAT3或SQLITE_ENABLE_STAT4编译时选项时,在WHERE子句中使用OR子句和IS NOT NOT运算符进行某些查询时缺少行的错误(Ticket4c86b126f2)。
2014-02-03 (3.8.3)
- 增加了对公用表表达式和WITH子句的支持。
2013-12-06 (3.8.2)
- 当浮点值大于+9223372036854775807被转换为整数时,更改了CAST表达式的定义行为,以便结果为最大可能整数+9223372036854775807,而不是最小可能整数-9223372036854775808。在此更改之后,CAST(9223372036854775809.0作为INT)产生+9223372036854775807而不是-9223372036854775808。
←潜在不相容的变化!
2013-10-17 (3.8.1)
- 添加不太可能()和可能性()SQL函数作为提示用于查询计划器。
2013-09-03 (3.8.0.2)
- 修正尝试省略未使用的LEFT JOIN的优化中的错误
2013-08-29 (3.8.0.1)
- 修复导致CRNL终止的CSV输入行末尾带引号的空字符串的错误错误,以致被命令行shell误读。
2013-08-26 (3.8.0)
- 添加对部分索引的支持
2013-05-20 (3.7.17)
- 添加对内存映射I / O的支持。
2013-04-12 (3.7.16.2)
- Fix a bug (present since version 3.7.13) that could result in database corruption on windows if two or more processes try to access the same database file at the same time and immediately after third process crashed in the middle of committing to that same file. See ticket 7ff3120e4f for further information.
2013-03-29 (3.7.16.1)
- Fix for a bug in the ORDER BY optimizer that was introduced in version 3.7.15 which would sometimes optimize out the sorting step when in fact the sort was required. Ticket a179fe7465
2013-03-18 (3.7.16)
- Added the PRAGMA foreign_key_check command.
2013-01-09 (3.7.15.2)
- Fix a bug, introduced in version 3.7.15, that causes an ORDER BY clause to be optimized out of a three-way join when the ORDER BY is actually required. Ticket 598f5f7596b055
2012-12-19 (3.7.15.1)
- Fix a bug, introduced in version 3.7.15, that causes a segfault if the AS name of a result column of a SELECT statement is used as a logical term in the WHERE clause. Ticket a7b7803e8d1e869.
2012-12-12 (3.7.15)
- Added the sqlite3_errstr() interface.
2012-10-04 (3.7.14.1)
- Fix a bug (ticket [d02e1406a58ea02d]](https://sqlite.org/www.sqlite.org/src/tktview/d02e1406a58ea02d)) that causes a segfault on a LEFT JOIN that includes an OR in the ON clause.
2012-09-03 (3.7.14)
- Drop built-in support for OS/2. If you need to upgrade an OS/2 application to use this or a later version of SQLite, then add an application-defined VFS using the sqlite3_vfs_register() interface. The code removed in this release can serve as a baseline for the application-defined VFS.
2012-06-11 (3.7.13)
- In-memory databases that are specified using URI filenames are allowed to use shared cache, so that the same in-memory database can be accessed from multiple database connections.
2012-05-22 (3.7.12.1)
- Fix a bug (ticket c2ad16f997) in the 3.7.12 release that can cause a segfault for certain obscure nested aggregate queries.
2012-05-14 (3.7.12)
- Add the SQLITE_DBSTATUS_CACHE_WRITE option for sqlite3_db_status().
2012-03-20 (3.7.11)
- Enhance the INSERT syntax to allow multiple rows to be inserted via the VALUES clause.
2012-01-16 (3.7.10)
- The default schema format number is changed from 1 to 4. This means that, unless the PRAGMA legacy_file_format=ON statement is run, newly created database files will be unreadable by version of SQLite prior to 3.3.0 (2006-01-10). It also means that the descending indices are enabled by default.
2011-11-01 (3.7.9)
- If a search token (on the right-hand side of the MATCH operator) in FTS4 begins with "^" then that token must be the first in its field of the document.
*
*
Potentially Incompatible Change
*
*
2011-09-19 (3.7.8)
- Orders of magnitude performance improvement for CREATE INDEX on very large tables.
2011-06-28 (3.7.7.1)
- Fix a bug causing PRAGMA case_sensitive_like statements compiled using sqlite3_prepare() to fail with an SQLITE_SCHEMA error.
2011-06-23 (3.7.7)
- Add support for URI filenames
2011-05-19 (3.7.6.3)
- Fix a problem with WAL mode which could cause transactions to silently rollback if the cache_size is set very small (less than 10) and SQLite comes under memory pressure.
2011-04-17 (3.7.6.2)
- Fix the function prototype for the open(2) system call to agree with POSIX. Without this fix, pthreads does not work correctly on NetBSD.
2011-04-13 (3.7.6.1)
- Fix a bug in 3.7.6 that only appears if the SQLITE_FCNTL_SIZE_HINT file control is used with a build of SQLite that makes use of the HAVE_POSIX_FALLOCATE compile-time option and which has SQLITE_ENABLE_LOCKING_MODE turned off.
2011-04-12 (3.7.6)
- Added the sqlite3_wal_checkpoint_v2() interface and enhanced the wal_checkpoint pragma to support blocking checkpoints.
2011-02-01 (3.7.5)
- Added the sqlite3_vsnprintf() interface.
2010-12-07 (3.7.4)
- Added the sqlite3_blob_reopen() interface to allow an existing sqlite3_blob object to be rebound to a new row.
2010-10-08 (3.7.3)
- Added the sqlite3_create_function_v2() interface that includes a destructor callback.
2010-08-24 (3.7.2)
- Fix an old and very obscure bug that can lead to corruption of the database free-page list when incremental_vacuum is used.
2010-08-23 (3.7.1)
- Added new commands SQLITE_DBSTATUS_SCHEMA_USED and SQLITE_DBSTATUS_STMT_USED to the sqlite3_db_status() interface, in order to report out the amount of memory used to hold the schema and prepared statements of a connection.
2010-08-04 (3.7.0.1)
- Fix a potential database corruption bug that can occur if version 3.7.0 and version 3.6.23.1 alternately write to the same database file. Ticket [51ae9cad317a1]
2010-07-21 (3.7.0)
- Added support for write-ahead logging.
2010-03-26 (3.6.23.1)
- Fix a bug in the offsets() function of FTS3
2010-03-09 (3.6.23)
- Added the secure_delete pragma.
2010-01-06 (3.6.22)
- Fix bugs that can (rarely) lead to incorrect query results when the CAST or OR operators are used in the WHERE clause of a query.
2009-12-07 (3.6.21)
- The SQL output resulting from sqlite3_trace() is now modified to include the values of bound parameters.
2009-11-04 (3.6.20)
- Optimizer enhancement: prepared statements are automatically re-compiled when a binding on the RHS of a LIKE operator changes or when any range constraint changes under SQLITE_ENABLE_STAT2.
2009-10-30 (3.6.16.1)
- A small patch to version 3.6.16 to fix the OP_If bug.
2009-10-14 (3.6.19)
- Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on.
2009-09-11 (3.6.18)
- Versioning of the SQLite source code has transitioned from CVS to Fossil.
2009-08-10 (3.6.17)
- Expose the sqlite3_strnicmp() interface for use by extensions and applications.
2009-06-27 (3.6.16)
- Fix a bug (ticket #3929) that occasionally causes INSERT or UPDATE operations to fail on an indexed table that has a self-modifying trigger.
2009-06-15 (3.6.15)
- Refactor the internal representation of SQL expressions so that they use less memory on embedded platforms.
2009-05-25 (3.6.14.2)
- Fix a code generator bug introduced in version 3.6.14. This bug can cause incorrect query results under obscure circumstances. Ticket #3879.
2009-05-19 (3.6.14.1)
- Fix a bug in group_concat(), ticket #3841
2009-05-07 (3.6.14)
- Added the optional asynchronous VFS module.
2009-04-13 (3.6.13)
- Fix a bug in version 3.6.12 that causes a segfault when running a count(*) on the sqlite_master table of an empty database. Ticket #3774.
2009-03-31 (3.6.12)
- Fixed a bug that caused database corruption when an incremental_vacuum is rolled back in an in-memory database. Ticket #3761.
2009-02-18 (3.6.11)
- Added the hot-backup interface.
2009-01-15 (3.6.10)
- Fix a cache coherency problem that could lead to database corruption. Ticket #3584.
2009-01-14 (3.6.9)
- Fix two bugs, which when combined might result in incorrect query results. Both bugs were harmless by themselves; only when they team up do they cause problems. Ticket #3581.
2009-01-12 (3.6.8)
- Added support for nested transactions
2008-12-16 (3.6.7)
- Reorganize the Unix interface in os_unix.c
2008-11-26 (3.6.6.2)
- Fix a bug in the b-tree delete algorithm that seems like it might be able to cause database corruption. The bug was first introduced in version 3.6.6 by check-in 5899 on 2008-11-13.
2008-11-22 (3.6.6.1)
- Fix a bug in the page cache that can lead database corruption following a rollback. This bug was first introduced in version 3.6.4.
2008-11-19 (3.6.6)
- Fix a #define that prevented memsys5 from compiling
2008-11-12 (3.6.5)
- Add the MEMORY option to the journal_mode pragma.
2008-10-15 (3.6.4)
- Add option support for LIMIT and ORDER BY clauses on DELETE and UPDATE statements. Only works if SQLite is compiled with SQLITE_ENABLE_UPDATE_DELETE_LIMIT.
2008-09-22 (3.6.3)
- Fix for a bug in the SELECT DISTINCT logic that was introduced by the prior version.
2008-08-30 (3.6.2)
- Split the pager subsystem into separate pager and pcache subsystems.
2008-08-06 (3.6.1)
- Added the lookaside memory allocator for a speed improvement in excess of 15% on some workloads. (Your mileage may vary.)
2008-07-16 (3.6.0 beta)
- Modifications to the virtual file system interface to support a wider range of embedded systems. See 35to36.html for additional information. *** Potentially incompatible change ***
2008-05-14 (3.5.9)
- Added
experimental
support for the journal_mode PRAGMA and persistent journal.
2008-04-16 (3.5.8)
- Expose SQLite's internal pseudo-random number generator (PRNG) via the sqlite3_randomness() interface
2008-03-17 (3.5.7)
- Fix a bug (ticket #2927) in the register allocation for compound selects - introduced by the new VM code in version 3.5.5.
2008-02-06 (3.5.6)
- Fix a bug (ticket #2913) that prevented virtual tables from working in a LEFT JOIN. The problem was introduced into shortly before the 3.5.5 release.
2008-01-31 (3.5.5)
- Convert the underlying virtual machine to be a register-based machine rather than a stack-based machine. The only user-visible change is in the output of EXPLAIN.
2007-12-14 (3.5.4)
- Fix a critical bug in UPDATE or DELETE that occurs when an OR REPLACE clause or a trigger causes rows in the same table to be deleted as side effects. (See ticket #2832.) The most likely result of this bug is a segmentation fault, though database corruption is a possibility.
2007-11-27 (3.5.3)
- Move website and documentation files out of the source tree into a separate CM system.
2007-11-05 (3.5.2)
- Dropped support for the SQLITE_OMIT_MEMORY_ALLOCATION compile-time option.
2007-10-04 (3.5.1)
Nota Bene:
We are not using terms "alpha" or "beta" on this release because the code is stable and because if we use those terms, nobody will upgrade. However, we still reserve the right to make incompatible changes to the new VFS interface in future releases.
2007-09-04 (3.5.0) alpha
- Redesign the OS interface layer. See 34to35.html for details. *** Potentially incompatible change ***
2007-08-13 (3.4.2)
- Fix a database corruption bug that might occur if a ROLLBACK command is executed in auto-vacuum mode and a very small sqlite3_soft_heap_limit is set. Ticket #2565.
2007-07-20 (3.4.1)
- Fix a bug in VACUUM that can lead to database corruption if two processes are connected to the database at the same time and one VACUUMs then the other then modifies the database.
2007-06-18 (3.4.0)
- Fix a bug that can lead to database corruption if an SQLITE_BUSY error occurs in the middle of an explicit transaction and that transaction is later committed. Ticket #2409. See the CorruptionFollowingBusyError wiki page for details.
2007-04-25 (3.3.17)
- When the "write_version" value of the database header is larger than what the library understands, make the database read-only instead of unreadable.
2007-04-18 (3.3.16)
- Fix a bug that caused VACUUM to fail if NULLs appeared in a UNIQUE column.
2007-04-09 (3.3.15)
- Fix a bug introduced in 3.3.14 that caused a rollback of CREATE TEMP TABLE to leave the database connection wedged.
2007-04-02 (3.3.14)
- Fix a bug (ticket #2273) that could cause a segfault when the IN operator is used one one term of a two-column index and the right-hand side of the IN operator contains a NULL.
2007-02-13 (3.3.13)
- Add a "fragmentation" measurement in the output of sqlite3_analyzer.
2007-01-27 (3.3.12)
- Fix another bug in the IS NULL optimization that was added in version 3.3.9.
2007-01-22 (3.3.11)
- Fix another bug in the implementation of the new sqlite3_prepare_v2() API. We'll get it right eventually...
2007-01-09 (3.3.10)
- Fix bugs in the implementation of the new sqlite3_prepare_v2() API that can lead to segfaults.
2007-01-04 (3.3.9)
- Fix bugs in pager.c that could lead to database corruption if two processes both try to recover a hot journal at the same instant
2006-10-09 (3.3.8)
- Support for full text search using the FTS1 module (beta)
2006-08-12 (3.3.7)
- Added support for virtual tables (beta)
2006-06-06 (3.3.6)
- Plays better with virus scanners on Windows
2006-04-05 (3.3.5)
- CHECK constraints use conflict resolution algorithms correctly.
2006-02-11 (3.3.4)
- Fix a blunder in the Unix mutex implementation that can lead to deadlock on multithreaded systems.
2006-01-31 (3.3.3)
- Removed support for an ON CONFLICT clause on CREATE INDEX - it never worked correctly so this should not present any backward compatibility problems.
2006-01-24 (3.3.2 beta)
- Bug fixes and speed improvements. Improved test coverage.
2006-01-16 (3.3.1 alpha)
- Countless bug fixes
2006-01-11 (3.3.0 alpha)
- CHECK constraints
2005-12-19 (3.2.8)
- Fix an obscure bug that can cause database corruption under the following unusual circumstances: A large INSERT or UPDATE statement which is part of an even larger transaction fails due to a uniqueness constraint but the containing transaction commits.
2005-12-19 (2.8.17)
- Fix an obscure bug that can cause database corruption under the following unusual circumstances: A large INSERT or UPDATE statement which is part of an even larger transaction fails due to a uniqueness contraint but the containing transaction commits.
2005-09-24 (3.2.7)
- GROUP BY now considers NULLs to be equal again, as it should
2005-09-17 (3.2.6)
- Fix a bug that can cause database corruption if a VACUUM (or autovacuum) fails and is rolled back on a database that is larger than 1GiB
2005-08-27 (3.2.5)
- Fix a bug effecting DELETE and UPDATE statements that changed more than 40960 rows.
2005-08-24 (3.2.4)
- Fix a bug introduced in the previous release that can cause a segfault while generating code for complex WHERE clauses.
2005-08-21 (3.2.3)
- Added support for the CAST operator
2005-06-12 (3.2.2)
- Added the sqlite3_db_handle() API
2005-03-29 (3.2.1)
- Fix a memory allocation error in the new ADD COLUMN comment.
2005-03-21 (3.2.0)
- Added support for ALTER TABLE ADD COLUMN.
2005-03-17 (3.1.6)
- Fix a bug that could cause database corruption when inserting record into tables with around 125 columns.
2005-03-11 (3.1.5)
- The ioctl on Mac OS X to control syncing to disk is F_FULLFSYNC, not F_FULLSYNC. The previous release had it wrong.
2005-03-11 (3.1.4)
- Fix a bug in autovacuum that could cause database corruption if a CREATE UNIQUE INDEX fails because of a constraint violation. This problem only occurs if the new autovacuum feature introduced in version 3.1 is turned on.
2005-02-19 (3.1.3)
- Fix a problem with VACUUM on databases from which tables containing AUTOINCREMENT have been dropped.
2005-02-15 (3.1.2)
- Fix a bug that can lead to database corruption if there are two open connections to the same database and one connection does a VACUUM and the second makes some change to the database.
2005-02-15 (2.8.16)
- Fix a bug that can lead to database corruption if there are two open connections to the same database and one connection does a VACUUM and the second makes some change to the database.
2005-02-01 (3.1.1 BETA)
- Automatic caching of prepared statements in the TCL interface
2005-01-21 (3.1.0 ALPHA)
- Autovacuum support added
2004-10-12 (3.0.8)
- Add support for DEFERRED, IMMEDIATE, and EXCLUSIVE transactions.
2004-09-18 (3.0.7)
- The BTree module allocates large buffers using malloc() instead of off of the stack, in order to play better on machines with limited stack space.
2004-09-02 (3.0.6 beta)
- Better detection and handling of corrupt database files.
2004-08-29 (3.0.5 beta)
- Support for ":AAA" style bind parameter names.
2004-08-09 (3.0.4 beta)
- CREATE TABLE and DROP TABLE now work correctly as prepared statements.
2004-07-22 (2.8.15)
- This is a maintenance release only. Various minor bugs have been fixed and some portability enhancements are added.
2004-07-22 (3.0.3 beta)
- The second beta release for SQLite 3.0.
2004-06-30 (3.0.2 beta)
- The first beta release for SQLite 3.0.
2004-06-22 (3.0.1 alpha)
*
*
*
Alpha Release - Research And Testing Use Only
*
*
*
2004-06-18 (3.0.0 alpha)
*
*
*
Alpha Release - Research And Testing Use Only
*
*
*
2004-06-09 (2.8.14)
- Fix the min() and max() optimizer so that it works when the FROM clause consists of a subquery.
2004-03-08 (2.8.13)
- Refactor parts of the code in order to make the code footprint smaller. The code is now also a little bit faster.
2004-02-08 (2.8.12)
- Fix a bug that will might corrupt the rollback journal if a power failure or external program halt occurs in the middle of a COMMIT. The corrupt journal can lead to database corruption when it is rolled back.
2004-01-14 (2.8.11)
- Fix a bug in how the IN operator handles NULLs in subqueries. The bug was introduced by the previous release.
2004-01-14 (2.8.10)
- Fix a potential database corruption problem on Unix caused by the fact that all POSIX advisory locks are cleared whenever you close() a file. The work around it to embargo all close() calls while locks are outstanding.
2004-01-06 (2.8.9)
- Fix a 32-bit integer overflow problem that could result in corrupt indices in a database if large negative numbers (less than -2147483648) were inserted into an indexed numeric column.
2003-12-18 (2.8.8)
- Fix a critical bug introduced into 2.8.0 which could cause database corruption.
2003-12-04 (2.8.7)
- Added experimental sqlite_bind() and sqlite_reset() APIs.
2003-08-22 (2.8.6)
- Moved the CVS repository to www.sqlite.org
2003-07-22 (2.8.5)
- Make LIMIT work on a compound SELECT statement.
2003-06-29 (2.8.4)
- Enhanced the "PRAGMA integrity_check" command to verify indices.
2003-06-04 (2.8.3)
- Fix a problem that will corrupt the indices on a table if you do an INSERT OR REPLACE or an UPDATE OR REPLACE on a table that contains an INTEGER PRIMARY KEY plus one or more indices.
2003-05-17 (2.8.2)
- Fix a problem that will corrupt the database file if you drop a table from the main database that has a TEMP index.
2003-05-17 (2.8.1)
- Reactivated the VACUUM command that reclaims unused disk space in a database file.
2003-02-16 (2.8.0)
- Modified the journal file format to make it more resistant to corruption that can occur after an OS crash or power failure.
2003-01-25 (2.7.6)
- Performance improvements. The library is now much faster.
2002-12-28 (2.7.5)
- Fix an uninitialized variable in pager.c which could (with a probability of about 1 in 4 billion) result in a corrupted database.
2002-12-17 (2.7.4)
- Database files can now grow to be up to 2^41 bytes. The old limit was 2^31 bytes.
2002-10-31 (2.7.3)
- Various compiler compatibility fixes.
2002-09-25 (2.7.2)
- Prevent journal file overflows on huge transactions.
2002-08-31 (2.7.1)
- Fix a bug in the ORDER BY logic that was introduced in version 2.7.0
2002-08-25 (2.7.0)
- Make a distinction between numeric and text values when sorting. Text values sort according to memcmp(). Numeric values sort in numeric order.
2002-08-13 (2.6.3)
- Add the ability to read both little-endian and big-endian databases. So a database created under SunOS or Mac OS X can be read and written under Linux or Windows and vice versa.
2002-07-31 (2.6.2)
- Text files read by the COPY command can now have line terminators of LF, CRLF, or CR.
2002-07-19 (2.6.1)
- Include a static string in the library that responds to the RCS "ident" command and which contains the library version number.
2002-07-18 (2.6.0)
- Change the format of indices to correct a design flaw the originated with version 2.1.0. *** This is an incompatible file format change *** When version 2.6.0 or later of the library attempts to open a database file created by version 2.5.6 or earlier, it will automatically and irreversibly convert the file format.
Make backup copies of older database files before opening them with version 2.6.0 of the library.
2002-07-07 (2.5.6)
- Fix more problems with rollback. Enhance the test suite to exercise the rollback logic extensively in order to prevent any future problems.
2002-07-06 (2.5.5)
- Fix a bug which could cause database corruption during a rollback. This bugs was introduced in version 2.4.0 by the freelist optimization of checkin 410.
2002-07-01 (2.5.4)
- Make the "AS" keyword optional again.
2002-06-25 (2.5.3)
- Bug fix: Database corruption can occur due to the optimization that was introduced in version 2.4.0 (check-in 410). The problem should now be fixed. The use of versions 2.4.0 through 2.5.2 is not recommended.
2002-06-25 (2.5.2)
- Added the new
SQLITE
_
TEMP
_
MASTER
table which records the schema for temporary tables in the same way thatSQLITE
_
MASTER
does for persistent tables.
2002-06-19 (2.5.1)
- The query optimizer now attempts to implement the ORDER BY clause using an index. Sorting is still used if not suitable index is available.
2002-06-17 (2.5.0)
- Added support for row triggers.
2002-05-10 (2.4.12)
- Added logic to detect when the library API routines are called out of sequence.
2002-05-08 (2.4.11)
- Bug fix: Column names in the result set were not being generated correctly for some (rather complex) VIEWs. This could cause a segfault under certain circumstances.
2002-05-03 (2.4.10)
- Bug fix: Generate correct column headers when a compound SELECT is used as a subquery.
2002-04-22 (2.4.9)
- Fix a bug that was causing the precompiled binary of SQLITE.EXE to report "out of memory" under Windows 98.
2002-04-20 (2.4.8)
- Make sure VIEWs are created after their corresponding TABLEs in the output of the
.dump
command in the shell.
2002-04-12 (2.4.7)
- Add the ability to put TABLE.* in the column list of a SELECT statement.
2002-04-02 (2.4.6)
- Bug fix: Correctly handle terms in the WHERE clause of a join that do not contain a comparison operator.
2002-04-02 (2.4.5)
- Bug fix: Correctly handle functions that appear in the WHERE clause of a join.
2002-03-30 (2.4.4)
- Allow "VIEW" to be a column name
2002-03-23 (2.4.3)
- Fix a bug in SELECT that occurs when a compound SELECT is used as a subquery in the FROM of a SELECT.
2002-03-20 (2.4.2)
- Bug fix: Fix an assertion failure that occurred when ROWID was a column in a SELECT statement on a view.
2002-03-13 (2.4.1)
- Using an unnamed subquery in a FROM clause would cause a segfault.
2002-03-11 (2.4.0)
- Change the name of the sanity
_
check
PRAGMA tointegrity
_
check
and make it available in all compiles.
2002-02-19 (2.3.3)
- Allow identifiers to be quoted in square brackets, for compatibility with MS-Access.
2002-02-14 (2.3.2)
- Bug fix: There was an incorrect assert() in pager.c. The real code was all correct (as far as is known) so everything should work OK if you compile with -DNDEBUG=1. When asserts are not disabled, there could be a fault.
2002-02-13 (2.3.1)
- Bug fix: An assertion was failing if "PRAGMA full_column_names=ON;" was set and you did a query that used a rowid, like this: "SELECT rowid, * FROM ...".
2002-02-03 (2.3.0)
- Fix a serious bug in the INSERT command which was causing data to go into the wrong columns if the data source was a SELECT and the INSERT clauses specified its columns in some order other than the default.
2002-01-28 (2.2.5)
- Important bug fix: the IN operator was not working if either the left-hand or right-hand side was derived from an INTEGER PRIMARY KEY.
2002-01-22 (2.2.4)
- The label to the right of an AS in the column list of a SELECT can now be used as part of an expression in the WHERE, ORDER BY, GROUP BY, and/or HAVING clauses.
2002-01-16 (2.2.3)
- Fix warning messages in VC++ 7.0. (Patches from nicolas352001)
2002-01-14 (2.2.2)
- Bug fix: An assertion was failing when a temporary table with an index had the same name as a permanent table created by a separate process.
2002-01-09 (2.2.1)
- Bug fix: An attempt to delete a single row of a table with a WHERE clause of "ROWID=x" when no such rowid exists was causing an error.
2001-12-22 (2.2.0)
- Columns of type INTEGER PRIMARY KEY are actually used as the primary key in underlying B-Tree representation of the table.
2001-12-15 (2.1.7)
- Fix a bug in
CREATE TEMPORARY TABLE
which was causing the table to be initially allocated in the main database file instead of in the separate temporary file. This bug could cause the library to suffer an assertion failure and it could cause "page leaks" in the main database file.
2001-12-14 (2.1.6)
- Fix the locking mechanism yet again to prevent
sqlite
_
exec()
from returning SQLITE_
PROTOCOL unnecessarily. This time the bug was a race condition in the locking code. This change affects both POSIX and Windows users.
2001-12-06 (2.1.5)
- Fix for another problem (unrelated to the one fixed in 2.1.4) that sometimes causes
sqlite
_
exec()
to return SQLITE_
PROTOCOL unnecessarily. This time the bug was in the POSIX locking code and should not effect Windows users.
2001-12-05 (2.1.4)
- Sometimes
sqlite
_
exec()
would return SQLITE_
PROTOCOL when it should have returned SQLITE_
BUSY.
2001-11-24 (2.1.3)
- Fix the behavior of comparison operators (ex: "<", "==", etc.) so that they are consistent with the order of entries in an index.
2001-11-23 (2.1.2)
- Changes to support 64-bit architectures.
2001-11-13 (2.1.1)
- Bug fix: Sometimes arbitrary strings were passed to the callback function when the actual value of a column was NULL.
2001-11-12 (2.1.0)
- Change the format of data records so that records up to 16MB in size can be stored.
2001-11-03 (2.0.8)
- Made selected parameters in API functions
const
. This should be fully backwards compatible.
2001-10-22 (2.0.7)
- Any UTF-8 character or ISO8859 character can be used as part of an identifier.
2001-10-19 (2.0.6)
- Added the EMPTY_RESULT_CALLBACKS pragma
2001-10-15 (2.0.5)
- Added the COUNT_CHANGES pragma.
2001-10-13 (2.0.4)
- Bug fix: an obscure and relatively harmless bug was causing one of the tests to fail when gcc optimizations are turned on. This release fixes the problem.
2001-10-13 (2.0.3)
- Bug fix: the
sqlite
_
busy
_
timeout()
function was delaying 1000 times too long before failing.
2001-10-09 (2.0.2)
- Fix two bugs in the locking protocol. (One was masking the other.)
2001-10-02 (2.0.1)
- Remove some C++ style comments from btree.c so that it will compile using compilers other than gcc.
2001-09-28 (2.0.0)
- Automatically build binaries for Linux and Windows and put them on the website.
2001-09-28 (2.0-alpha-4)
- Incorporate makefile patches form A. Rottmann to use LIBTOOL
2001-09-27 (2.0-alpha-3)
- SQLite now honors the UNIQUE keyword in CREATE UNIQUE INDEX. Primary keys are required to be unique.
2001-09-20 (2.0-alpha-2)
- Initial release of version 2.0. The idea of renaming the library to "SQLus" was abandoned in favor of keeping the "SQLite" name and bumping the major version number.
2001-07-23 (1.0.32)
- Pager and btree subsystems removed. These will be used in a follow-on SQL server library named "SQLus".
2001-04-15 (1.0.31)
- Pager subsystem added but not yet used.
2001-04-06 (1.0.30)
- Remove the
sqlite
_
encoding
TCL variable that was introduced in the previous version.
2001-04-05 (1.0.29)
- The library now assumes data is stored as UTF-8 if the --enable-utf8 option is given to configure. The default behavior is to assume iso8859-x, as it has always done. This only makes a difference for LIKE and GLOB operators and the LENGTH and SUBSTR functions.
2001-04-04 (1.0.28)
- Added limited support for transactions. At this point, transactions will do table locking on the GDBM backend. There is no support (yet) for rollback or atomic commit.
2001-03-20 (1.0.27)
- When doing DELETE and UPDATE, the library used to write the record numbers of records to be deleted or updated into a temporary file. This is changed so that the record numbers are held in memory.
2001-03-20 (1.0.26)
- A serious bug fixed on Windows. Windows users should upgrade. No impact to Unix.
2001-03-15 (1.0.25)
- Modify the test scripts to identify tests that depend on system load and processor speed and to warn the user that a failure of one of those (rare) tests does not necessarily mean the library is malfunctioning. No changes to code.
2001-03-14 (1.0.24)
- Fix a bug which was causing the UPDATE command to fail on systems where "malloc(0)" returns NULL. The problem does not appear on Windows, Linux, or HPUX but does cause the library to fail on QNX.
2001-02-20 (1.0.23)
- An unrelated (and minor) bug from Mark Muranwski fixed. The algorithm for figuring out where to put temporary files for a "memory:" database was not working quite right.
2001-02-19 (1.0.22)
- The previous fix was not quite right. This one seems to work better.
2001-02-19 (1.0.21)
- The UPDATE statement was not working when the WHERE clause contained some terms that could be satisfied using indices and other terms that could not. Fixed.
2001-02-11 (1.0.20)
- Merge development changes into the main trunk. Future work toward using a BTree file structure will use a separate CVS source tree. This CVS tree will continue to support the GDBM version of SQLite only.
2001-02-06 (1.0.19)
- Fix a strange (but valid) C declaration that was causing problems for QNX. No logical changes.
2001-01-04 (1.0.18)
- Print the offending SQL statement when an error occurs.
2000-12-10 (1.0.17)
- Rewrote
sqlite
_
complete()
to make it faster.
2000-11-28 (1.0.16)
- Documentation updates. Mostly fixing of typos and spelling errors.
2000-10-23 (1.0.15)
- Documentation updates
2000-10-19 (1.0.14)
- Added a "memory:" backend driver that stores its database in an in-memory hash table.
2000-10-19 (1.0.13)
- Break out the GDBM driver into a separate file in anticipation to added new drivers.
2000-10-17 (1.0.12)
- Fixed an off-by-one error that was causing a coredump in the '%q' format directive of the new
sqlite
_
...
_
printf()
routines.
2000-10-11 (1.0.10)
- Added notes on how to compile for Windows95/98.
2000-10-09 (1.0.9)
- Added the
sqlite
_
...
_
printf()
interface routines.
2000-09-30 (1.0.8)
- Begin writing documentation on the TCL interface.
2000-09-29 (Not Released)
- Added the
sqlite
_
get
_
table()
API
2000-09-21 (Not Released)
- Change the tclsqlite "eval" method to return a list of results if no callback script is specified.
2000-09-14 (1.0.5)
- Changed the print format for floating point values from "%g" to "%.15g".
2000-08-28 (1.0.4)
- Added functions
length()
andsubstr()
.
2000-08-22 (1.0.3)
- In the sqlite shell, print the "Database opened READ ONLY" message to stderr instead of stdout.
2000-08-18 (1.0.1)
- Fix a bug in the configure script.
2000-08-17 (1.0)
- Change the
sqlite
program so that it can read databases for which it lacks write permission. (It used to refuse all access if it could not write.)
2000-08-09
- Treat carriage returns as white space.
2000-08-08
- Added pattern matching to the ".table" command in the "sqlite" command shell.
2000-08-04
- Documentation updates
2000-08-03
- File format version number was being stored in sqlite_master.tcl multiple times. This was harmless, but unnecessary. It is now fixed.
2000-08-02
- The file format for indices was changed slightly in order to work around an inefficiency that can sometimes come up with GDBM when there are large indices having many entries with the same key. ** Incompatible Change **
2000-08-01
- The parser's stack was overflowing on a very long UPDATE statement. This is now fixed.
2000-07-31
- Finish the VDBE tutorial.
2000-07-29
- Better labels on column names of the result.
2000-07-28
- Added the
sqlite
_
busy
_
handler()
andsqlite
_
busy
_
timeout()
interface.
2000-06-23
- Begin writing the VDBE tutorial.
2000-06-21
- Clean up comments and variable names. Changes to documentation. No functional changes to the code.
2000-06-19
- Column names in UPDATE statements were case sensitive. This mistake has now been fixed.
2000-06-18
- Added the concatenate string operator (||)
2000-06-12
- Added the fcnt() function to the SQL interpreter. The fcnt() function returns the number of database "Fetch" operations that have occurred. This function is designed for use in test scripts to verify that queries are efficient and appropriately optimized. Fcnt() has no other useful purpose, as far as I know.
2000-06-08
- Added lots of new test cases
2000-06-06
- Added compound select operators:
UNION
,UNION ALL
,INTERSECT
, andEXCEPT
2000-06-03
- Added support for default values on columns of a table.
2000-06-02
- All database files to be modified by an UPDATE, INSERT or DELETE are now locked before any changes are made to any files. This makes it safe (I think) to access the same database simultaneously from multiple processes.
2000-06-01
- Better support for file locking so that two or more processes (or threads) can access the same database simultaneously. More work needed in this area, though.
2000-05-31
- Added support for aggregate functions (Ex:
COUNT(
*
)
,MIN(...)
)
to the SELECT statement.
2000-05-30
- Added the
LIKE
operator.
2000-05-29
- Initial Public Release of Alpha code
SQLite is in the Public Domain.