# # Run this script to generated a changes.html output file # source common.tcl header {SQLite changes} puts {

This page provides a high-level summary of changes to SQLite. For more detail, refer the the checkin logs generated by CVS at http://www.sqlite.org/cvstrac/timeline.

} proc chng {date desc} { if {[regexp {\(([0-9.]+)\)} $date all vers]} { set label [string map {. _} $vers] puts "" } puts "
$date
" regsub -all {[Tt]icket #(\d+)} $desc \ {
\0} desc puts "

" puts "
" } chng {2007 Sep 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 replacable at compile-time.
  • Created a new mutex subsystem and made it replacable at compile-time.
  • The same database connection may now be used simultaneously by separate threads. } chng {2007 August 13 (3.4.2)} {
  • Fix a database corruption bug that might occur if a ROLLBACK command is executed in auto-vacuum mode and a very small soft_heap_limit is set. Ticket #2565.
  • Add the ability to run a full regression test with a small soft_heap_limit.
  • Fix other minor problems with using small soft heap limits.
  • Work-around for GCC bug 32575.
  • Improved error detection of misused aggregate functions.
  • Improvements to the amalgamation generator script so that all symbols are prefixed with either SQLITE_PRIVATE or SQLITE_API. } chng {2007 July 20 (3.4.1)} {
  • Fix a bug in VACUUM that can lead to database corruption if two processes are connected to the database at the same time and one VACUUMs then the other then modifies the database.
  • The expression "+column" is now considered the same as "column" when computing the collating sequence to use on the expression.
  • In the TCL language interface, "@variable" instead of "$variable" always binds as a blob.
  • Added PRAGMA freelist_count for determining the current size of the freelist.
  • The PRAGMA auto_vacuum=incremental setting is now persistent.
  • Add FD_CLOEXEC to all open files under unix.
  • Fix a bug in the min()/max() optimization when applied to descending indices.
  • Make sure the TCL language interface works correctly with 64-bit integers on 64-bit machines.
  • Allow the value -9223372036854775808 as an integer literal in SQL statements.
  • Add the capability of "hidden" columns in virtual tables.
  • Use the macro SQLITE_PRIVATE (defaulting to "static") on all internal functions in the amalgamation.
  • Add pluggable tokenizers and ICU tokenization support to FTS2
  • Other minor bug fixes and documentation enhancements
  • } chng {2007 June 18 (3.4.0)} {
  • Fix a bug that can lead to database corruption if an SQLITE_BUSY error occurs in the middle of an explicit transaction and that transaction is later committed. Ticket #2409. See the CorruptionFollowingBusyError wiki page for details.
  • Fix a bug that can lead to database corruption if autovacuum mode is on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement which itself follows a cache overflow inside a transaction. See ticket #2418.
  • Added explicit upper bounds on the sizes and quantities of things SQLite can process. This change might cause compatibility problems for applications that use SQLite in the extreme, which is why the current release is 3.4.0 instead of 3.3.18.
  • Added support for Incremental BLOB I/O.
  • Added the zeroblob API and the zeroblob() SQL function.
  • Added support for Incremental Vacuum.
  • Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to suppport ARM7 processors with goofy endianness.
  • Removed all instances of sprintf() and strcpy() from the core library.
  • Added support for International Components for Unicode (ICU) to the full-text search extensions.

  • } footer {$Id:}