Released on 4 Oct 2007
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.5.1 Changelog
  • 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.
  • Fix a bug in the handling of SQLITE_FULL errors that could lead to database corruption. Ticket #2686.
  • The test_async.c drive now does full file locking and works correctly when used simultaneously by multiple processes on the same database.
  • The CLI ignores whitespace (including comments) at the end of lines
  • Make sure the query optimizer checks dependencies on all terms of a compound SELECT statement. Ticket #2640.
  • Add demonstration code showing how to build a VFS for a raw mass storage without a filesystem.
  • Added an output buffer size parameter to the xGetTempname() method of the VFS layer.
  • Sticky SQLITE_FULL or SQLITE_IOERR errors in the pager are reset when a new transaction is started.

2007-09-04 (3.5.0) alpha

  • Redesign the OS interface layer. See 34to35.html for details. *** Potentially incompatible change ***
  • The sqlite3_release_memory(), sqlite3_soft_heap_limit(), and sqlite3_enable_shared_cache() interfaces now work cross all threads in the process, not just the single thread in which they are invoked. *** Potentially incompatible change ***
  • Added the sqlite3_open_v2() interface.
  • Reimplemented the memory allocation subsystem and made it replaceable at compile-time.
  • Created a new mutex subsystem and made it replicable at compile-time.
  • The same database connection may now be used simultaneously by separate threads.