SQLite

3.7.10

Released on 16 Jan 2012
Project description.

SQLite is an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. The code for SQLite is in the public domain and is thus free for use for any purpose, commercial or private. SQLite is the most widely deployed database in the world with more applications than we can count, including several high-profile projects.

SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file. The database file format is cross-platform - you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. These features make SQLite a popular choice as an Application File Format.

SQLite 3.7.10 Changelog
  • 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