Small. Fast. Reliable.
Choose any three.

About Documentation Download License Support Purchase |

## SQLite Release 3.7.10 On 2012-01-16

- 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.
- The sqlite3_pcache_methods structure and the SQLITE_CONFIG_PCACHE and SQLITE_CONFIG_GETPCACHE configuration parameters are deprecated. They are replaced by a new sqlite3_pcache_methods2 structure and SQLITE_CONFIG_PCACHE2 and SQLITE_CONFIG_GETPCACHE2 configuration parameters.
- Added the powersafe overwrite property to the VFS interface. Provide the SQLITE_IOCAP_POWERSAFE_OVERWRITE I/O capability, the SQLITE_POWERSAFE_OVERWRITE compile-time option, and the "psow=BOOLEAN" query parameter for URI filenames.
- Added the sqlite3_db_release_memory() interface and the shrink_memory pragma.
- Added the sqlite3_db_filename() interface.
- Added the sqlite3_stmt_busy() interface.
- Added the sqlite3_uri_boolean() and sqlite3_uri_int64() interfaces.
- If the argument to PRAGMA cache_size is negative N, that means to use approximately -1024*N bytes of memory for the page cache regardless of the page size.
- Enhanced the default memory allocator to make use of _msize() on windows, malloc_size() on Mac, and malloc_usable_size() on Linux.
- Enhanced the query planner to support index queries with range constraints on the rowid.
- Enhanced the query planner flattening logic to allow UNION ALL compounds to be promoted upwards to replace a simple wrapper SELECT even if the compounds are joins.
- Enhanced the query planner so that the xfer optimization can be used with INTEGER PRIMARY KEY ON CONFLICT as long as the destination table is initially empty.
- Enhanced the windows VFS so that all system calls can be overridden using the xSetSystemCall interface.
- Updated the "unix-dotfile" VFS to use locking directories with mkdir() and rmdir() instead of locking files with open() and unlink().
- Enhancements to the test_quota.c extension to support stdio-like interfaces with quotas.
- Change the unix VFS to be tolerant of read() system calls that return less then the full number of requested bytes.
- Change both unix and windows VFSes to report a sector size of 4096 instead of the old default of 512.
- In the TCL Interface, add the -uri option to the "sqlite3" TCL command used for creating new database connection objects.
- Added the SQLITE_TESTCTRL_EXPLAIN_STMT test-control option with the SQLITE_ENABLE_TREE_EXPLAIN compile-time option to enable the command-line shell to display ASCII-art parse trees of SQL statements that it processes, for debugging and analysis.
- Bug fix: Add an additional xSync when restarting a WAL in order to prevent an exceedingly unlikely but theoretically possible database corruption following power-loss. Ticket ff5be73dee.
- Bug fix: Change the VDBE so that all registers are initialized to Invalid instead of NULL. Ticket 7bbfb7d442
- Bug fix: Fix problems that can result from 32-bit integer overflow. Ticket ac00f496b7e2
- SQLITE_SOURCE_ID: "2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204"
- SHA1 for sqlite3.c: 6497cbbaad47220bd41e2e4216c54706e7ae95d4

A complete list of SQLite releases in a single page and a chronology are both also available. A detailed history of every check-in is available at SQLite version control site.