Released on 18 Sep 2004
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.0.7 Changelog
  • The BTree module allocates large buffers using malloc() instead of off of the stack, in order to play better on machines with limited stack space.
  • Fixed naming conflicts so that versions 2.8 and 3.0 can be linked and used together in the same ANSI-C source file.
  • New interface: sqlite3_bind_parameter_index()
  • Add support for wildcard parameters of the form: "?nnn"
  • Fix problems found on 64-bit systems.
  • Removed encode.c file (containing unused routines) from the version 3.0 source tree.
  • The sqlite3_trace() callbacks occur before each statement is executed, not when the statement is compiled.
  • Makefile updates and miscellaneous bug fixes.

2004-09-02 (3.0.6 beta)

  • Better detection and handling of corrupt database files.
  • The sqlite3_step() interface returns SQLITE_BUSY if it is unable to commit a change because of a lock
  • Combine the implementations of LIKE and GLOB into a single pattern-matching subroutine.
  • Miscellaneous code size optimizations and bug fixes

2004-08-29 (3.0.5 beta)

  • Support for ":AAA" style bind parameter names.
  • Added the new sqlite3_bind_parameter_name() interface.
  • Support for TCL variable names embedded in SQL statements in the TCL bindings.
  • The TCL bindings transfer data without necessarily doing a conversion to a string.
  • The database for TEMP tables is not created until it is needed.
  • Add the ability to specify an alternative temporary file directory using the "sqlite_temp_directory" global variable.
  • A compile-time option (SQLITE_BUSY_RESERVED_LOCK) causes the busy handler to be called when there is contention for a RESERVED lock.
  • Various bug fixes and optimizations

2004-08-08 (3.0.4 beta)

  • CREATE TABLE and DROP TABLE now work correctly as prepared statements.
  • Fix a bug in VACUUM and UNIQUE indices.
  • Add the ".import" command to the command-line shell.
  • Fix a bug that could cause index corruption when an attempt to delete rows of a table is blocked by a pending query.
  • Library size optimizations.
  • Other minor bug fixes.