Small. Fast. Reliable.
Choose any three.

## SQLite Release 3.7.10 On 2012-01-16

1. 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.
2. 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.
3. 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.
4. Added the sqlite3_db_release_memory() interface and the shrink_memory pragma.
5. Added the sqlite3_db_filename() interface.
6. Added the sqlite3_stmt_busy() interface.
7. Added the sqlite3_uri_boolean() and sqlite3_uri_int64() interfaces.
8. 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.
9. Enhanced the default memory allocator to make use of _msize() on windows, malloc_size() on Mac, and malloc_usable_size() on Linux.
10. Enhanced the query planner to support index queries with range constraints on the rowid.
11. 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.
12. 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.
13. Enhanced the windows VFS so that all system calls can be overridden using the xSetSystemCall interface.
14. Updated the "unix-dotfile" VFS to use locking directories with mkdir() and rmdir() instead of locking files with open() and unlink().
15. Enhancements to the test_quota.c extension to support stdio-like interfaces with quotas.
16. Change the unix VFS to be tolerant of read() system calls that return less then the full number of requested bytes.
17. Change both unix and windows VFSes to report a sector size of 4096 instead of the old default of 512.
18. In the TCL Interface, add the -uri option to the "sqlite3" TCL command used for creating new database connection objects.
19. 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.
20. 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.
21. Bug fix: Change the VDBE so that all registers are initialized to Invalid instead of NULL. Ticket 7bbfb7d442
22. Bug fix: Fix problems that can result from 32-bit integer overflow. Ticket ac00f496b7e2
23. SQLITE_SOURCE_ID: "2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204"
24. 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.