January 10th, 2013
· SQLite version 18.104.22.168 is a patch release that fixes a single bug that was introduced in version version 3.7.15. The fix is a 4-character edit to a single line of code. Other than this 4-character change and the update of the version number, nothing has changed from version 22.214.171.124.
October 5th, 2012
· Fix a bug (ticket [d02e1406a58ea02d]]) that causes a segfault on a LEFT JOIN that includes an OR in the ON clause.
· Work around a bug in the optimizer in the VisualStudio-2012 compiler that causes invalid code to be generated when compiling SQLite on ARM.
· Fix the TCL interface so that the "nullvalue" setting is honored for TCL implementations of SQL functions.
· SQLITE_SOURCE_ID: "2012-10-04 19:37:12 091570e46d04e84b67228e0bdbcd6e1fb60c6bdb"
· SHA1 for sqlite3.c: 62aaecaacab3a4bf4a8fe4aec1cfdc1571fe9a44
May 23rd, 2012
· Fix a bug (ticket c2ad16f997) in the 3.7.12 release that can cause a segfault for certain obscure nested aggregate queries.
· Fix various other minor test script problems.
· SQLITE_SOURCE_ID: "2012-05-22 02:45:53 6d326d44fd1d626aae0e8456e5fa2049f1ce0789"
· SHA1 for sqlite3.c: d494e8d81607f0515d4f386156fb0fd86d5ba7df
January 17th, 2012
· The SQLITE_CONFIG_PCACHE mechanism has been replaced with SQLITE_CONFIG_PCACHE2. If you do not know what this mechanism is (it is an extreme corner-case and is seldom used) then this change will not effect you in the least.
· The default schema format number for new database files has changed from 1 to 4. SQLite has been able to generate and read database files using schema format 4 for six years. But up unto now, the default schema format has been 1 so that older versions of SQLite could read and write databases generated by newer versions of SQLite. But those older versions of SQLite have become so scarce now that it seems reasonable to make the new format the default.
· SQLite is changing some of the assumptions it makes above the behavior of disk drives and flash memory devices during a sudden power loss. This change is completely transparent to applications. Read about the powersafe overwrite property for additional information.
Lots of new interfaces have been added in this release:
· PRAGMA shrink_memory
· The PRAGMA cache_size statement has been enhanced. Formerly, you would use this statement to tell SQLite how many pages of the database files it should hold in its cache at once. The total memory requirement would depend on the database page size. Now, if you give PRAGMA cache_size a negative value -N, it will allocate roughly N kibibytes of memory to cache, divided up according to page size. This enhancement allows programs to more easily control their memory usage.
· There have been several obscure bug fixes. One noteworthy bug, ticket ff5be73dee, could in theory result in a corrupt database file if a power loss occurred at just the wrong moment on an unusually cantankerous disk drive. But that is mostly a theoretical concern and is very unlikely to happen in practice. The bug was found during laboratory testing and has never been observed to occur in the wild.
June 24th, 2011
· Add support for URI filenames
· Add the sqlite3_vtab_config() interface in support of ON CONFLICT clauses with virtual tables.
· Add the xSavepoint, xRelease and xRollbackTo methods in virtual tables in support of SAVEPOINT for virtual tables.
· Update the built-in FTS3/FTS4 and RTREE virtual tables to support ON CONFLICT clauses and REPLACE.
· Avoid unnecessary reparsing of the database schema.
· Added support for the FTS4 prefix option and the FTS4 order option.
· Allow WAL-mode databases to be opened read-only as long as there is an existing read/write connection.
· Added support for short filenames.
· SQLITE_SOURCE_ID: "2011-06-23 19:49:22 4374b7e83ea0a3fbc3691f9c0c936272862f32f2"
· SHA1 for sqlite3.c: 5bbe79e206ae5ffeeca760dbd0d66862228db551
April 15th, 2011
· 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.
· SQLITE_SOURCE_ID: "2011-04-13 14:40:25 a35e83eac7b185f4d363d7fa51677f2fdfa27695"
· SHA1 for sqlite3.c: b81bfa27d3e09caf3251475863b1ce6dd9f6ab66
February 1st, 2011
· Added the sqlite3_vsnprintf() interface.
· Added the SQLITE_DBSTATUS_LOOKASIDE_HIT, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, and SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL options for the sqlite3_db_status() interface.
· Added the SQLITE_OMIT_AUTORESET compile-time option.
· Added the SQLITE_DEFAULT_FOREIGN_KEYS compile-time option.
· Updates to sqlite3_stmt_readonly() so that its result is well-defined for all prepared statements and so that it works with VACUUM.
· Added the "-heap" option to the command-line shell
· Fix a bug involving frequent changes in and out of WAL mode and VACUUM that could (in theory) cause database corruption.
· Enhance the sqlite3_trace() mechanism so that nested SQL statements such as might be generated by virtual tables are shown but are shown in comments and without parameter expansion. This greatly improves tracing output when using the FTS3/4 and/or RTREE virtual tables.
· Change the xFileControl() methods on all built-in VFSes to return SQLITE_NOTFOUND instead of SQLITE_ERROR for an unrecognized operation code.
· The SQLite core invokes the SQLITE_FCNTL_SYNC_OMITTED file control to the VFS in place of a call to xSync if the database has PRAGMA synchronous set to OFF.
December 8th, 2010
· Added the sqlite3_blob_reopen() interface to allow an existing sqlite3_blob object to be rebound to a new row.
· Use the new sqlite3_blob_reopen() interface to improve the performance of FTS.
· VFSes that do not support shared memory are allowed to access WAL databases if PRAGMA locking_mode is set to EXCLUSIVE.
· Enhancements to EXPLAIN QUERY PLAN.
· Added the sqlite3_stmt_readonly() interface.
· Added PRAGMA checkpoint_fullfsync.
· Added the SQLITE_FCNTL_FILE_POINTER option to sqlite3_file_control().
· Added support for FTS4 and enhancements to the FTS matchinfo() function.
· Added the test_superlock.c module which provides example code for obtaining an exclusive lock to a rollback or WAL database.
· Added the test_multiplex.c module which provides an example VFS that provides multiplexing (sharding) of a DB, splitting it over multiple files of fixed size.
· A very obscure bug associated with the or optimization was fixed.
September 14th, 2010
· Fix an old and very obscure bug that can lead to corruption of the database free-page list when incremental_vacuum is used.
July 22nd, 2010
· Added support for write-ahead logging.
· Query planner enhancement - automatic transient indices are created when doing so reduces the estimated query time.
· Query planner enhancement - the ORDER BY becomes a no-op if the query also contains a GROUP BY clause that forces the correct output order.
· Add the SQLITE_DBSTATUS_CACHE_USED verb for sqlite3_db_status().
· The logical database size is now stored in the database header so that bytes can be appended to the end of the database file without corrupting it and so that SQLite will work correctly on systems that lack support for ftruncate().
March 30th, 2010
· SQLite version 126.96.36.199 is a patch release to fix a bug in the offsets() function of FTS3 at the request of the Mozilla.
March 10th, 2010
· Added the secure_delete pragma.
· Added the sqlite3_compileoption_used() and sqlite3_compileoption_get() interfaces as well as the compile_options pragma and the sqlite_compileoption_used() and sqlite_compileoption_get() SQL functions.
· Added the sqlite3_log() interface together with the SQLITE_CONFIG_LOG verb to sqlite3_config(). The ".log" command is added to the Command Line Interface.
· Improvements to FTS3.
· Improvements and bug-fixes in support for SQLITE_OMIT_FLOATING_POINT.
· The integrity_check pragma is enhanced to detect out-of-order rowids.
· The ".genfkey" operator has been removed from the Command Line Interface.
· Updates to the co-hosted Lemon LALR(1) parser generator. (These updates did not effect SQLite.)
· Various minor bug fixes and performance enhancements.