From e36d23a85ebff914d74bb541558c2b6082b78edb Mon Sep 17 00:00:00 2001
From: dan miller
Date: Sat, 20 Oct 2007 02:49:29 +0000
Subject: sqlite source (unix build) added to libraries
---
libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl | 1866 ++++++++++++++++++++
1 file changed, 1866 insertions(+)
create mode 100644 libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl
(limited to 'libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl')
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl b/libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl
new file mode 100644
index 0000000..df697ad
--- /dev/null
+++ b/libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl
@@ -0,0 +1,1866 @@
+#
+# 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 Oct 04 (3.5.1)} {
+
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 dependences 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.
+}
+
+
+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.
+
+
+- In the windows OS driver, reacquire a SHARED lock if an attempt to
+ acquire an EXCLUSIVE lock fails. Ticket #2354
+- Fix the REPLACE() function so that it returns NULL if the second argument
+ is an empty string. Ticket #2324.
+- Document the hazards of type coversions in
+ sqlite3_column_blob()
+ and related APIs. Fix unnecessary type conversions. Ticket #2321.
+- Internationalization of the TRIM() function. Ticket #2323
+- Use memmove() instead of memcpy() when moving between memory regions
+ that might overlap. Ticket #2334
+- Fix an optimizer bug involving subqueries in a compound SELECT that has
+ both an ORDER BY and a LIMIT clause. Ticket #2339.
+- Make sure the sqlite3_snprintf()
+ interface does not zero-terminate the buffer if the buffer size is
+ less than 1. Ticket #2341
+- Fix the built-in printf logic so that it prints "NaN" not "Inf" for
+ floating-point NaNs. Ticket #2345
+- When converting BLOB to TEXT, use the text encoding of the main database.
+ Ticket #2349
+- Keep the full precision of integers (if possible) when casting to
+ NUMERIC. Ticket #2364
+- Fix a bug in the handling of UTF16 codepoint 0xE000
+- Consider explicit collate clauses when matching WHERE constraints
+ to indices in the query optimizer. Ticket #2391
+- Fix the query optimizer to correctly handle constant expressions in
+ the ON clause of a LEFT JOIN. Ticket #2403
+- Fix the query optimizer to handle rowid comparisions to NULL
+ correctly. Ticket #2404
+- Fix many potental segfaults that could be caused by malicious SQL
+ statements.
+}
+
+chng {2007 April 25 (3.3.17)} {
+- When the "write_version" value of the database header is larger than
+ what the library understands, make the database read-only instead of
+ unreadable.
+- Other minor bug fixes
+}
+
+chng {2007 April 18 (3.3.16)} {
+- Fix a bug that caused VACUUM to fail if NULLs appeared in a
+ UNIQUE column.
+- Reinstate performance improvements that were added in 3.3.14
+ but regressed in 3.3.15.
+- Fix problems with the handling of ORDER BY expressions on
+ compound SELECT statements in subqueries.
+- Fix a potential segfault when destroying locks on WinCE in
+ a multi-threaded environment.
+- Documentation updates.
+}
+
+chng {2007 April 9 (3.3.15)} {
+- Fix a bug introduced in 3.3.14 that caused a rollback of
+ CREATE TEMP TABLE to leave the database connection wedged.
+- Fix a bug that caused an extra NULL row to be returned when
+ a descending query was interrupted by a change to the database.
+- The FOR EACH STATEMENT clause on a trigger now causes a syntax
+ error. It used to be silently ignored.
+- Fix an obscure and relatively harmless problem that might have caused
+ a resource leak following an I/O error.
+- Many improvements to the test suite. Test coverage now exceeded 98%
+}
+
+chng {2007 April 2 (3.3.14)} {
+- Fix a bug
+ in 3.3.13 that could cause a segfault when the IN operator
+ is used one one term of a two-column index and the right-hand side of
+ the IN operator contains a NULL.
+- Added a new OS interface method for determining the sector size
+ of underlying media: sqlite3OsSectorSize().
+- A new algorithm for statements of the form
+ INSERT INTO table1 SELECT * FROM table2
+ is faster and reduces fragmentation. VACUUM uses statements of
+ this form and thus runs faster and defragments better.
+- Performance enhancements through reductions in disk I/O:
+
+- Do not read the last page of an overflow chain when
+ deleting the row - just add that page to the freelist.
+- Do not store pages being deleted in the
+ rollback journal.
+- Do not read in the (meaningless) content of
+ pages extracted from the freelist.
+- Do not flush the page cache (and thus avoiding
+ a cache refill) unless another process changes the underlying
+ database file.
+- Truncate rather than delete the rollback journal when committing
+ a transaction in exclusive access mode, or when committing the TEMP
+ database.
+
+- Added support for exclusive access mode using
+
+ "PRAGMA locking_mode=EXCLUSIVE"
+- Use heap space instead of stack space for large buffers in the
+ pager - useful on embedded platforms with stack-space
+ limitations.
+- Add a makefile target "sqlite3.c" that builds an amalgamation containing
+ the core SQLite library C code in a single file.
+- Get the library working correctly when compiled
+ with GCC option "-fstrict-aliasing".
+- Removed the vestigal SQLITE_PROTOCOL error.
+- Improvements to test coverage, other minor bugs fixed,
+ memory leaks plugged,
+ code refactored and/or recommented in places for easier reading.
+}
+
+chng {2007 February 13 (3.3.13)} {
+- Add a "fragmentation" measurement in the output of sqlite3_analyzer.
+- Add the COLLATE operator used to explicitly set the collating sequence
+used by an expression. This feature is considered experimental pending
+additional testing.
+- Allow up to 64 tables in a join - the old limit was 32.
+- Added two new experimental functions:
+randomBlob() and
+hex().
+Their intended use is to facilitate generating
+UUIDs.
+
+- Fix a problem where
+PRAGMA count_changes was
+causing incorrect results for updates on tables with triggers
+- Fix a bug in the ORDER BY clause optimizer for joins where the
+left-most table in the join is constrained by a UNIQUE index.
+- Fixed a bug in the "copy" method of the TCL interface.
+- Bug fixes in fts1 and fts2 modules.
+}
+
+chng {2007 January 27 (3.3.12)} {
+- Fix another bug in the IS NULL optimization that was added in
+version 3.3.9.
+- Fix a assertion fault that occurred on deeply nested views.
+- Limit the amount of output that
+PRAGMA integrity_check
+generates.
+- Minor syntactic changes to support a wider variety of compilers.
+}
+
+chng {2007 January 22 (3.3.11)} {
+- Fix another bug in the implementation of the new
+sqlite3_prepare_v2() API.
+We'll get it right eventually...
+- Fix a bug in the IS NULL optimization that was added in version 3.3.9 -
+the bug was causing incorrect results on certain LEFT JOINs that included
+in the WHERE clause an IS NULL constraint for the right table of the
+LEFT JOIN.
+- Make AreFileApisANSI() a no-op macro in winCE since winCE does not
+support this function.
+}
+
+chng {2007 January 9 (3.3.10)} {
+- Fix bugs in the implementation of the new
+sqlite3_prepare_v2() API
+that can lead to segfaults.
+- Fix 1-second round-off errors in the
+
+strftime() function
+- Enhance the windows OS layer to provide detailed error codes
+- Work around a win2k problem so that SQLite can use single-character
+database file names
+- The
+user_version and
+schema_version pragmas
+correctly set their column names in the result set
+- Documentation updates
+}
+
+chng {2007 January 4 (3.3.9)} {
+- Fix bugs in pager.c that could lead to database corruption if two
+processes both try to recover a hot journal at the same instant
+- Added the sqlite3_prepare_v2()
+API.
+- Fixed the ".dump" command in the command-line shell to show
+indices, triggers and views again.
+- Change the table_info pragma so that it returns NULL for the default
+value if there is no default value
+- Support for non-ASCII characters in win95 filenames
+- Query optimizer enhancements:
+
+- Optimizer does a better job of using indices to satisfy ORDER BY
+clauses that sort on the integer primary key
+- Use an index to satisfy an IS NULL operator in the WHERE clause
+- Fix a bug that was causing the optimizer to miss an OR optimization
+opportunity
+- The optimizer has more freedom to reorder tables in the FROM clause
+even in there are LEFT joins.
+
+ - Extension loading supported added to winCE
+- Allow constraint names on the DEFAULT clause in a table definition
+- Added the ".bail" command to the command-line shell
+- Make CSV (comma separate value) output from the command-line shell
+more closely aligned to accepted practice
+- Experimental FTS2 module added
+- Use sqlite3_mprintf() instead of strdup() to avoid libc dependencies
+- VACUUM uses a temporary file in the official TEMP folder, not in the
+same directory as the original database
+- The prefix on temporary filenames on windows is changed from "sqlite"
+to "etilqs".
+}
+
+chng {2006 October 9 (3.3.8)} {
+- Support for full text search using the
+FTS1 module
+(beta)
+- Added OS-X locking patches (beta - disabled by default)
+- Introduce extended error codes and add error codes for various
+kinds of I/O errors.
+- Added support for IF EXISTS on CREATE/DROP TRIGGER/VIEW
+- Fix the regression test suite so that it works with Tcl8.5
+- Enhance sqlite3_set_authorizer() to provide notification of calls to
+ SQL functions.
+- Added experimental API: sqlite3_auto_extension()
+- Various minor bug fixes
+}
+
+chng {2006 August 12 (3.3.7)} {
+- Added support for
+virtual tables
+(beta)
+- Added support for
+
+dynamically loaded extensions (beta)
+- The
+sqlite3_interrupt()
+routine can be called for a different thread
+- Added the MATCH operator.
+- The default file format is now 1.
+}
+
+chng {2006 June 6 (3.3.6)} {
+
- Plays better with virus scanners on windows
+- Faster :memory: databases
+- Fix an obscure segfault in UTF-8 to UTF-16 conversions
+- Added driver for OS/2
+- Correct column meta-information returned for aggregate queries
+- Enhanced output from EXPLAIN QUERY PLAN
+- LIMIT 0 now works on subqueries
+- Bug fixes and performance enhancements in the query optimizer
+- Correctly handle NULL filenames in ATTACH and DETACH
+- Inproved syntax error messages in the parser
+- Fix type coercion rules for the IN operator
+}
+
+chng {2006 April 5 (3.3.5)} {
+- CHECK constraints use conflict resolution algorithms correctly.
+- The SUM() function throws an error on integer overflow.
+- Choose the column names in a compound query from the left-most SELECT
+ instead of the right-most.
+- The sqlite3_create_collation() function
+ honors the SQLITE_UTF16_ALIGNED flag.
+- SQLITE_SECURE_DELETE compile-time option causes deletes to overwrite
+ old data with zeros.
+- Detect integer overflow in abs().
+- The random() function provides 64 bits of randomness instead of
+ only 32 bits.
+- Parser detects and reports automaton stack overflow.
+- Change the round() function to return REAL instead of TEXT.
+- Allow WHERE clause terms on the left table of a LEFT OUTER JOIN to
+ contain aggregate subqueries.
+- Skip over leading spaces in text to numeric conversions.
+- Various minor bug and documentation typo fixes and
+ performance enhancements.
+}
+
+chng {2006 February 11 (3.3.4)} {
+- Fix a blunder in the Unix mutex implementation that can lead to
+deadlock on multithreaded systems.
+- Fix an alignment problem on 64-bit machines
+- Added the fullfsync pragma.
+- Fix an optimizer bug that could have caused some unusual LEFT OUTER JOINs
+to give incorrect results.
+- The SUM function detects integer overflow and converts to accumulating
+an approximate result using floating point numbers
+- Host parameter names can begin with '@' for compatibility with SQL Server.
+
+- Other miscellaneous bug fixes
+}
+
+chng {2006 January 31 (3.3.3)} {
+- Removed support for an ON CONFLICT clause on CREATE INDEX - it never
+worked correctly so this should not present any backward compatibility
+problems.
+- Authorizer callback now notified of ALTER TABLE ADD COLUMN commands
+- After any changes to the TEMP database schema, all prepared statements
+are invalidated and must be recreated using a new call to
+sqlite3_prepare()
+- Other minor bug fixes in preparation for the first stable release
+of version 3.3
+}
+
+chng {2006 January 24 (3.3.2 beta)} {
+- Bug fixes and speed improvements. Improved test coverage.
+- Changes to the OS-layer interface: mutexes must now be recursive.
+- Discontinue the use of thread-specific data for out-of-memory
+exception handling
+}
+
+chng {2006 January 16 (3.3.1 alpha)} {
+- Countless bug fixes
+- Speed improvements
+- Database connections can now be used by multiple threads, not just
+the thread in which they were created.
+}
+
+chng {2006 January 10 (3.3.0 alpha)} {
+- CHECK constraints
+- IF EXISTS and IF NOT EXISTS clauses on CREATE/DROP TABLE/INDEX.
+- DESC indices
+- More efficient encoding of boolean values resulting in smaller database
+files
+- More aggressive SQLITE_OMIT_FLOATING_POINT
+- Separate INTEGER and REAL affinity
+- Added a virtual function layer for the OS interface
+- "exists" method added to the TCL interface
+- Improved response to out-of-memory errors
+- Database cache can be optionally shared between connections
+in the same thread
+- Optional READ UNCOMMITTED isolation (instead of the default
+isolation level of SERIALIZABLE) and table level locking when
+database connections share a common cache.
+}
+
+chng {2005 December 19 (3.2.8)} {
+- Fix an obscure bug that can cause database corruption under the
+following unusual circumstances: A large INSERT or UPDATE statement which
+is part of an even larger transaction fails due to a uniqueness contraint
+but the containing transaction commits.
+}
+
+chng {2005 December 19 (2.8.17)} {
+- Fix an obscure bug that can cause database corruption under the
+following unusual circumstances: A large INSERT or UPDATE statement which
+is part of an even larger transaction fails due to a uniqueness contraint
+but the containing transaction commits.
+}
+
+chng {2005 September 24 (3.2.7)} {
+- GROUP BY now considers NULLs to be equal again, as it should
+
+- Now compiles on Solaris and OpenBSD and other Unix variants
+that lack the fdatasync() function
+- Now compiles on MSVC++6 again
+- Fix uninitialized variables causing malfunctions for various obscure
+queries
+- Correctly compute a LEFT OUTER JOINs that is constrained on the
+left table only
+}
+
+chng {2005 September 17 (3.2.6)} {
+- Fix a bug that can cause database corruption if a VACUUM (or
+ autovacuum) fails and is rolled back on a database that is
+ larger than 1GiB
+- LIKE optiization now works for columns with COLLATE NOCASE
+- ORDER BY and GROUP BY now use bounded memory
+- Added support for COUNT(DISTINCT expr)
+- Change the way SUM() handles NULL values in order to comply with
+ the SQL standard
+- Use fdatasync() instead of fsync() where possible in order to speed
+ up commits slightly
+- Use of the CROSS keyword in a join turns off the table reordering
+ optimization
+- Added the experimental and undocumented EXPLAIN QUERY PLAN capability
+- Use the unicode API in windows
+}
+
+chng {2005 August 27 (3.2.5)} {
+- Fix a bug effecting DELETE and UPDATE statements that changed
+more than 40960 rows.
+- Change the makefile so that it no longer requires GNUmake extensions
+- Fix the --enable-threadsafe option on the configure script
+- Fix a code generator bug that occurs when the left-hand side of an IN
+operator is constant and the right-hand side is a SELECT statement
+- The PRAGMA synchronous=off statement now disables syncing of the
+master journal file in addition to the normal rollback journals
+}
+
+chng {2005 August 24 (3.2.4)} {
+- Fix a bug introduced in the previous release
+that can cause a segfault while generating code
+for complex WHERE clauses.
+- Allow floating point literals to begin or end with a decimal point.
+}
+
+chng {2005 August 21 (3.2.3)} {
+- Added support for the CAST operator
+- Tcl interface allows BLOB values to be transferred to user-defined
+functions
+- Added the "transaction" method to the Tcl interface
+- Allow the DEFAULT value of a column to call functions that have constant
+operands
+- Added the ANALYZE command for gathering statistics on indices and
+using those statistics when picking an index in the optimizer
+- Remove the limit (formerly 100) on the number of terms in the
+WHERE clause
+- The right-hand side of the IN operator can now be a list of expressions
+instead of just a list of constants
+- Rework the optimizer so that it is able to make better use of indices
+- The order of tables in a join is adjusted automatically to make
+better use of indices
+- The IN operator is now a candidate for optimization even if the left-hand
+side is not the left-most term of the index. Multiple IN operators can be
+used with the same index.
+- WHERE clause expressions using BETWEEN and OR are now candidates
+for optimization
+- Added the "case_sensitive_like" pragma and the SQLITE_CASE_SENSITIVE_LIKE
+compile-time option to set its default value to "on".
+- Use indices to help with GLOB expressions and LIKE expressions too
+when the case_sensitive_like pragma is enabled
+- Added support for grave-accent quoting for compatibility with MySQL
+- Improved test coverage
+- Dozens of minor bug fixes
+}
+
+chng {2005 June 13 (3.2.2)} {
+- Added the sqlite3_db_handle() API
+- Added the sqlite3_get_autocommit() API
+- Added a REGEXP operator to the parser. There is no function to back
+up this operator in the standard build but users can add their own using
+sqlite3_create_function()
+- Speed improvements and library footprint reductions.
+- Fix byte alignment problems on 64-bit architectures.
+- Many, many minor bug fixes and documentation updates.
+}
+
+chng {2005 March 29 (3.2.1)} {
+- Fix a memory allocation error in the new ADD COLUMN comment.
+- Documentation updates
+}
+
+chng {2005 March 21 (3.2.0)} {
+- Added support for ALTER TABLE ADD COLUMN.
+- Added support for the "T" separator in ISO-8601 date/time strings.
+- Improved support for Cygwin.
+- Numerous bug fixes and documentation updates.
+}
+
+chng {2005 March 16 (3.1.6)} {
+- Fix a bug that could cause database corruption when inserting
+ record into tables with around 125 columns.
+- sqlite3_step() is now much more likely to invoke the busy handler
+ and less likely to return SQLITE_BUSY.
+- Fix memory leaks that used to occur after a malloc() failure.
+}
+
+chng {2005 March 11 (3.1.5)} {
+- The ioctl on OS-X to control syncing to disk is F_FULLFSYNC,
+ not F_FULLSYNC. The previous release had it wrong.
+}
+
+chng {2005 March 10 (3.1.4)} {
+- Fix a bug in autovacuum that could cause database corruption if
+a CREATE UNIQUE INDEX fails because of a constraint violation.
+This problem only occurs if the new autovacuum feature introduced in
+version 3.1 is turned on.
+- The F_FULLSYNC ioctl (currently only supported on OS-X) is disabled
+if the synchronous pragma is set to something other than "full".
+- Add additional forward compatibility to the future version 3.2 database
+file format.
+- Fix a bug in WHERE clauses of the form (rowid<'2')
+- New SQLITE_OMIT_... compile-time options added
+- Updates to the man page
+- Remove the use of strcasecmp() from the shell
+- Windows DLL exports symbols Tclsqlite_Init and Sqlite_Init
+}
+
+chng {2005 February 19 (3.1.3)} {
+- Fix a problem with VACUUM on databases from which tables containing
+AUTOINCREMENT have been dropped.
+- Add forward compatibility to the future version 3.2 database file
+format.
+- Documentation updates
+}
+
+chng {2005 February 15 (3.1.2)} {
+- Fix a bug that can lead to database corruption if there are two
+open connections to the same database and one connection does a VACUUM
+and the second makes some change to the database.
+- Allow "?" parameters in the LIMIT clause.
+- Fix VACUUM so that it works with AUTOINCREMENT.
+- Fix a race condition in AUTOVACUUM that can lead to corrupt databases
+- Add a numeric version number to the sqlite3.h include file.
+- Other minor bug fixes and performance enhancements.
+}
+
+chng {2005 February 15 (2.8.16)} {
+- Fix a bug that can lead to database corruption if there are two
+open connections to the same database and one connection does a VACUUM
+and the second makes some change to the database.
+- Correctly handle quoted names in CREATE INDEX statements.
+- Fix a naming conflict between sqlite.h and sqlite3.h.
+- Avoid excess heap usage when copying expressions.
+- Other minor bug fixes.
+}
+
+chng {2005 February 1 (3.1.1 BETA)} {
+- Automatic caching of prepared statements in the TCL interface
+- ATTACH and DETACH as well as some other operations cause existing
+ prepared statements to expire.
+- Numerious minor bug fixes
+}
+
+chng {2005 January 21 (3.1.0 ALPHA)} {
+- Autovacuum support added
+- CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP added
+- Support for the EXISTS clause added.
+- Support for correlated subqueries added.
+- Added the ESCAPE clause on the LIKE operator.
+- Support for ALTER TABLE ... RENAME TABLE ... added
+- AUTOINCREMENT keyword supported on INTEGER PRIMARY KEY
+- Many SQLITE_OMIT_ macros inserts to omit features at compile-time
+ and reduce the library footprint.
+- The REINDEX command was added.
+- The engine no longer consults the main table if it can get
+ all the information it needs from an index.
+- Many nuisance bugs fixed.
+}
+
+chng {2004 October 11 (3.0.8)} {
+- Add support for DEFERRED, IMMEDIATE, and EXCLUSIVE transactions.
+- Allow new user-defined functions to be created when there are
+already one or more precompiled SQL statements.
-
+
- Fix portability problems for Mingw/MSYS.
+- Fix a byte alignment problem on 64-bit Sparc machines.
+- Fix the ".import" command of the shell so that it ignores \r
+characters at the end of lines.
+- The "csv" mode option in the shell puts strings inside double-quotes.
+- Fix typos in documentation.
+- Convert array constants in the code to have type "const".
+- Numerous code optimizations, specially optimizations designed to
+make the code footprint smaller.
+}
+
+chng {2004 September 18 (3.0.7)} {
+- 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.
+}
+
+chng {2004 September 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
+}
+
+chng {2004 August 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
+}
+
+chng {2004 August 8 (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.
+}
+
+chng {2004 July 22 (2.8.15)} {
+- This is a maintenance release only. Various minor bugs have been
+fixed and some portability enhancements are added.
+}
+
+chng {2004 July 22 (3.0.3 beta)} {
+- The second beta release for SQLite 3.0.
+- Add support for "PRAGMA page_size" to adjust the page size of
+the database.
+- Various bug fixes and documentation updates.
+}
+
+chng {2004 June 30 (3.0.2 beta)} {
+- The first beta release for SQLite 3.0.
+}
+
+chng {2004 June 22 (3.0.1 alpha)} {
+-
+ *** Alpha Release - Research And Testing Use Only ***
+
- Lots of bug fixes.
+}
+
+chng {2004 June 18 (3.0.0 alpha)} {
+-
+ *** Alpha Release - Research And Testing Use Only ***
+
- Support for internationalization including UTF-8, UTF-16, and
+ user defined collating sequences.
+- New file format that is 25% to 35% smaller for typical use.
+- Improved concurrency.
+- Atomic commits for ATTACHed databases.
+- Remove cruft from the APIs.
+- BLOB support.
+- 64-bit rowids.
+- More information.
+}
+
+chng {2004 June 9 (2.8.14)} {
+
- Fix the min() and max() optimizer so that it works when the FROM
+ clause consists of a subquery.
+- Ignore extra whitespace at the end of of "." commands in the shell.
+- Bundle sqlite_encode_binary() and sqlite_decode_binary() with the
+ library.
+- The TEMP_STORE and DEFAULT_TEMP_STORE pragmas now work.
+- Code changes to compile cleanly using OpenWatcom.
+- Fix VDBE stack overflow problems with INSTEAD OF triggers and
+ NULLs in IN operators.
+- Add the global variable sqlite_temp_directory which if set defines the
+ directory in which temporary files are stored.
+- sqlite_interrupt() plays well with VACUUM.
+- Other minor bug fixes.
+}
+
+chng {2004 March 8 (2.8.13)} {
+- Refactor parts of the code in order to make the code footprint
+ smaller. The code is now also a little bit faster.
+- sqlite_exec() is now implemented as a wrapper around sqlite_compile()
+ and sqlite_step().
+- The built-in min() and max() functions now honor the difference between
+ NUMERIC and TEXT datatypes. Formerly, min() and max() always assumed
+ their arguments were of type NUMERIC.
+- New HH:MM:SS modifier to the built-in date/time functions.
+- Experimental sqlite_last_statement_changes() API added. Fixed the
+ the last_insert_rowid() function so that it works correctly with
+ triggers.
+- Add functions prototypes for the database encryption API.
+- Fix several nuisance bugs.
+}
+
+chng {2004 February 8 (2.8.12)} {
+- Fix a bug that will might corrupt the rollback journal if a power failure
+ or external program halt occurs in the middle of a COMMIT. The corrupt
+ journal can lead to database corruption when it is rolled back.
+- Reduce the size and increase the speed of various modules, especially
+ the virtual machine.
+- Allow "<expr> IN <table>" as a shorthand for
+ "<expr> IN (SELECT * FROM <table>".
+- Optimizations to the sqlite_mprintf() routine.
+- Make sure the MIN() and MAX() optimizations work within subqueries.
+}
+
+chng {2004 January 14 (2.8.11)} {
+- Fix a bug in how the IN operator handles NULLs in subqueries. The bug
+ was introduced by the previous release.
+}
+
+chng {2004 January 13 (2.8.10)} {
+- Fix a potential database corruption problem on Unix caused by the fact
+ that all posix advisory locks are cleared whenever you close() a file.
+ The work around it to embargo all close() calls while locks are
+ outstanding.
+- Performance enhancements on some corner cases of COUNT(*).
+- Make sure the in-memory backend response sanely if malloc() fails.
+- Allow sqlite_exec() to be called from within user-defined SQL
+ functions.
+- Improved accuracy of floating-point conversions using "long double".
+- Bug fixes in the experimental date/time functions.
+}
+
+chng {2004 January 5 (2.8.9)} {
+- Fix a 32-bit integer overflow problem that could result in corrupt
+ indices in a database if large negative numbers (less than -2147483648)
+ were inserted into a indexed numeric column.
+- Fix a locking problem on multi-threaded Linux implementations.
+- Always use "." instead of "," as the decimal point even if the locale
+ requests ",".
+- Added UTC to localtime conversions to the experimental date/time
+ functions.
+- Bug fixes to date/time functions.
+}
+
+chng {2003 December 17 (2.8.8)} {
+- Fix a critical bug introduced into 2.8.0 which could cause
+ database corruption.
+- Fix a problem with 3-way joins that do not use indices
+- The VACUUM command now works with the non-callback API
+- Improvements to the "PRAGMA integrity_check" command
+}
+
+chng {2003 December 4 (2.8.7)} {
+- Added experimental sqlite_bind() and sqlite_reset() APIs.
+- If the name of the database is an empty string, open a new database
+ in a temporary file that is automatically deleted when the database
+ is closed.
+- Performance enhancements in the lemon-generated parser
+- Experimental date/time functions revised.
+- Disallow temporary indices on permanent tables.
+- Documentation updates and typo fixes
+- Added experimental sqlite_progress_handler() callback API
+- Removed support for the Oracle8 outer join syntax.
+- Allow GLOB and LIKE operators to work as functions.
+- Other minor documentation and makefile changes and bug fixes.
+}
+
+chng {2003 August 21 (2.8.6)} {
+- Moved the CVS repository to www.sqlite.org
+- Update the NULL-handling documentation.
+- Experimental date/time functions added.
+- Bug fix: correctly evaluate a view of a view without segfaulting.
+- Bug fix: prevent database corruption if you dropped a
+ trigger that had the same name as a table.
+- Bug fix: allow a VACUUM (without segfaulting) on an empty
+ database after setting the EMPTY_RESULT_CALLBACKS pragma.
+- Bug fix: if an integer value will not fit in a 32-bit int, store it in
+ a double instead.
+- Bug fix: Make sure the journal file directory entry is committed to disk
+ before writing the database file.
+}
+
+chng {2003 July 22 (2.8.5)} {
+- Make LIMIT work on a compound SELECT statement.
+- LIMIT 0 now shows no rows. Use LIMIT -1 to see all rows.
+- Correctly handle comparisons between an INTEGER PRIMARY KEY and
+ a floating point number.
+- Fix several important bugs in the new ATTACH and DETACH commands.
+- Updated the NULL-handling document.
+- Allow NULL arguments in sqlite_compile() and sqlite_step().
+- Many minor bug fixes
+}
+
+chng {2003 June 29 (2.8.4)} {
+- Enhanced the "PRAGMA integrity_check" command to verify indices.
+- Added authorization hooks for the new ATTACH and DETACH commands.
+- Many documentation updates
+- Many minor bug fixes
+}
+
+chng {2003 June 4 (2.8.3)} {
+- Fix a problem that will corrupt the indices on a table if you
+ do an INSERT OR REPLACE or an UPDATE OR REPLACE on a table that
+ contains an INTEGER PRIMARY KEY plus one or more indices.
+- Fix a bug in windows locking code so that locks work correctly
+ when simultaneously accessed by Win95 and WinNT systems.
+- Add the ability for INSERT and UPDATE statements to refer to the
+ "rowid" (or "_rowid_" or "oid") columns.
+- Other important bug fixes
+}
+
+chng {2003 May 17 (2.8.2)} {
+- Fix a problem that will corrupt the database file if you drop a
+ table from the main database that has a TEMP index.
+}
+
+chng {2003 May 16 (2.8.1)} {
+- Reactivated the VACUUM command that reclaims unused disk space in
+ a database file.
+- Added the ATTACH and DETACH commands to allow interacting with multiple
+ database files at the same time.
+- Added support for TEMP triggers and indices.
+- Added support for in-memory databases.
+- Removed the experimental sqlite_open_aux_file(). Its function is
+ subsumed in the new ATTACH command.
+- The precedence order for ON CONFLICT clauses was changed so that
+ ON CONFLICT clauses on BEGIN statements have a higher precedence than
+ ON CONFLICT clauses on constraints.
+
- Many, many bug fixes and compatibility enhancements.
+}
+
+chng {2003 Feb 16 (2.8.0)} {
+- Modified the journal file format to make it more resistant to corruption
+ that can occur after an OS crash or power failure.
+- Added a new C/C++ API that does not use callback for returning data.
+}
+
+chng {2003 Jan 25 (2.7.6)} {
+- Performance improvements. The library is now much faster.
+- Added the sqlite_set_authorizer() API. Formal documentation has
+ not been written - see the source code comments for instructions on
+ how to use this function.
+- Fix a bug in the GLOB operator that was preventing it from working
+ with upper-case letters.
+- Various minor bug fixes.
+}
+
+chng {2002 Dec 27 (2.7.5)} {
+- Fix an uninitialized variable in pager.c which could (with a probability
+ of about 1 in 4 billion) result in a corrupted database.
+}
+
+chng {2002 Dec 17 (2.7.4)} {
+- Database files can now grow to be up to 2^41 bytes. The old limit
+ was 2^31 bytes.
+- The optimizer will now scan tables in the reverse if doing so will
+ satisfy an ORDER BY ... DESC clause.
+- The full pathname of the database file is now remembered even if
+ a relative path is passed into sqlite_open(). This allows
+ the library to continue operating correctly after a chdir().
+- Speed improvements in the VDBE.
+- Lots of little bug fixes.
+}
+
+chng {2002 Oct 30 (2.7.3)} {
+- Various compiler compatibility fixes.
+- Fix a bug in the "expr IN ()" operator.
+- Accept column names in parentheses.
+- Fix a problem with string memory management in the VDBE
+- Fix a bug in the "table_info" pragma"
+- Export the sqlite_function_type() API function in the Windows DLL
+- Fix locking behavior under windows
+- Fix a bug in LEFT OUTER JOIN
+}
+
+chng {2002 Sep 25 (2.7.2)} {
+- Prevent journal file overflows on huge transactions.
+- Fix a memory leak that occurred when sqlite_open() failed.
+- Honor the ORDER BY and LIMIT clause of a SELECT even if the
+ result set is used for an INSERT.
+- Do not put write locks on the file used to hold TEMP tables.
+- Added documentation on SELECT DISTINCT and on how SQLite handles NULLs.
+- Fix a problem that was causing poor performance when many thousands
+ of SQL statements were executed by a single sqlite_exec() call.
+}
+
+chng {2002 Aug 31 (2.7.1)} {
+- Fix a bug in the ORDER BY logic that was introduced in version 2.7.0
+- C-style comments are now accepted by the tokenizer.
+- INSERT runs a little faster when the source is a SELECT statement.
+}
+
+chng {2002 Aug 25 (2.7.0)} {
+- Make a distinction between numeric and text values when sorting.
+ Text values sort according to memcmp(). Numeric values sort in
+ numeric order.
+- Allow multiple simultaneous readers under windows by simulating
+ the reader/writers locks that are missing from Win95/98/ME.
+- An error is now returned when trying to start a transaction if
+ another transaction is already active.
+}
+
+chng {2002 Aug 12 (2.6.3)} {
+- Add the ability to read both little-endian and big-endian databases.
+ So database created under SunOS or MacOSX can be read and written
+ under Linux or Windows and vice versa.
+- Convert to the new website: http://www.sqlite.org/
+- Allow transactions to span Linux Threads
+- Bug fix in the processing of the ORDER BY clause for GROUP BY queries
+}
+
+chng {2002 Jly 30 (2.6.2)} {
+- Text files read by the COPY command can now have line terminators
+ of LF, CRLF, or CR.
+- SQLITE_BUSY is handled correctly if encountered during database
+ initialization.
+- Fix to UPDATE triggers on TEMP tables.
+- Documentation updates.
+}
+
+chng {2002 Jly 19 (2.6.1)} {
+- Include a static string in the library that responds to the RCS
+ "ident" command and which contains the library version number.
+- Fix an assertion failure that occurred when deleting all rows of
+ a table with the "count_changes" pragma turned on.
+- Better error reporting when problems occur during the automatic
+ 2.5.6 to 2.6.0 database format upgrade.
+}
+
+chng {2002 Jly 17 (2.6.0)} {
+- Change the format of indices to correct a design flaw the originated
+ with version 2.1.0. *** This is an incompatible
+ file format change *** When version 2.6.0 or later of the
+ library attempts to open a database file created by version 2.5.6 or
+ earlier, it will automatically and irreversibly convert the file format.
+ Make backup copies of older database files before opening them with
+ version 2.6.0 of the library.
+
+}
+
+chng {2002 Jly 7 (2.5.6)} {
+- Fix more problems with rollback. Enhance the test suite to exercise
+ the rollback logic extensively in order to prevent any future problems.
+
+}
+
+chng {2002 Jly 6 (2.5.5)} {
+- Fix a bug which could cause database corruption during a rollback.
+ This bugs was introduced in version 2.4.0 by the freelist
+ optimization of checking [410].
+- Fix a bug in aggregate functions for VIEWs.
+- Other minor changes and enhancements.
+}
+
+chng {2002 Jly 1 (2.5.4)} {
+- Make the "AS" keyword optional again.
+- The datatype of columns now appear in the 4th argument to the
+ callback.
+- Added the sqlite_open_aux_file() API, though it is still
+ mostly undocumented and untested.
+- Added additional test cases and fixed a few bugs that those
+ test cases found.
+}
+
+chng {2002 Jun 24 (2.5.3)} {
+- Bug fix: Database corruption can occur due to the optimization
+ that was introduced in version 2.4.0 (check-in [410]). The problem
+ should now be fixed. The use of versions 2.4.0 through 2.5.2 is
+ not recommended.
+}
+
+chng {2002 Jun 24 (2.5.2)} {
+- Added the new SQLITE_TEMP_MASTER table which records the schema
+ for temporary tables in the same way that SQLITE_MASTER does for
+ persistent tables.
+- Added an optimization to UNION ALL
+- Fixed a bug in the processing of LEFT OUTER JOIN
+- The LIMIT clause now works on subselects
+- ORDER BY works on subselects
+- There is a new TypeOf() function used to determine if an expression
+ is numeric or text.
+- Autoincrement now works for INSERT from a SELECT.
+}
+
+chng {2002 Jun 19 (2.5.1)} {
+- The query optimizer now attempts to implement the ORDER BY clause
+ using an index. Sorting is still used if not suitable index is
+ available.
+}
+
+chng {2002 Jun 17 (2.5.0)} {
+- Added support for row triggers.
+- Added SQL-92 compliant handling of NULLs.
+- Add support for the full SQL-92 join syntax and LEFT OUTER JOINs.
+- Double-quoted strings interpreted as column names not text literals.
+- Parse (but do not implement) foreign keys.
+- Performance improvements in the parser, pager, and WHERE clause code
+ generator.
+- Make the LIMIT clause work on subqueries. (ORDER BY still does not
+ work, though.)
+- Added the "%Q" expansion to sqlite_*_printf().
+- Bug fixes too numerous to mention (see the change log).
+}
+
+chng {2002 May 09 (2.4.12)} {
+- Added logic to detect when the library API routines are called out
+ of sequence.
+}
+
+chng {2002 May 08 (2.4.11)} {
+- Bug fix: Column names in the result set were not being generated
+ correctly for some (rather complex) VIEWs. This could cause a
+ segfault under certain circumstances.
+}
+
+chng {2002 May 02 (2.4.10)} {
+- Bug fix: Generate correct column headers when a compound SELECT is used
+ as a subquery.
+- Added the sqlite_encode_binary() and sqlite_decode_binary() functions to
+ the source tree. But they are not yet linked into the library.
+- Documentation updates.
+- Export the sqlite_changes() function from windows DLLs.
+- Bug fix: Do not attempt the subquery flattening optimization on queries
+ that lack a FROM clause. To do so causes a segfault.
+}
+
+chng {2002 Apr 21 (2.4.9)} {
+- Fix a bug that was causing the precompiled binary of SQLITE.EXE to
+ report "out of memory" under Windows 98.
+}
+
+chng {2002 Apr 20 (2.4.8)} {
+- Make sure VIEWs are created after their corresponding TABLEs in the
+ output of the .dump command in the shell.
+- Speed improvements: Do not do synchronous updates on TEMP tables.
+- Many improvements and enhancements to the shell.
+- Make the GLOB and LIKE operators functions that can be overridden
+ by a programmer. This allows, for example, the LIKE operator to
+ be changed to be case sensitive.
+}
+
+chng {2002 Apr 06 (2.4.7)} {
+- Add the ability to put TABLE.* in the column list of a
+ SELECT statement.
+- Permit SELECT statements without a FROM clause.
+- Added the last_insert_rowid() SQL function.
+- Do not count rows where the IGNORE conflict resolution occurs in
+ the row count.
+- Make sure functions expressions in the VALUES clause of an INSERT
+ are correct.
+- Added the sqlite_changes() API function to return the number
+ of row that changed in the most recent operation.
+}
+
+chng {2002 Apr 02 (2.4.6)} {
+- Bug fix: Correctly handle terms in the WHERE clause of a join that
+ do not contain a comparison operator.
+}
+
+chng {2002 Apr 01 (2.4.5)} {
+- Bug fix: Correctly handle functions that appear in the WHERE clause
+ of a join.
+- When the PRAGMA vdbe_trace=ON is set, correctly print the P3 operand
+ value when it is a pointer to a structure rather than a pointer to
+ a string.
+- When inserting an explicit NULL into an INTEGER PRIMARY KEY, convert
+ the NULL value into a unique key automatically.
+}
+
+chng {2002 Mar 24 (2.4.4)} {
+- Allow "VIEW" to be a column name
+- Added support for CASE expressions (patch from Dan Kennedy)
+- Added RPMS to the delivery (patches from Doug Henry)
+- Fix typos in the documentation
+- Cut over configuration management to a new CVS repository with
+ its own CVSTrac bug tracking system.
+}
+
+chng {2002 Mar 22 (2.4.3)} {
+- Fix a bug in SELECT that occurs when a compound SELECT is used as a
+ subquery in the FROM of a SELECT.
+- The sqlite_get_table() function now returns an error if you
+ give it two or more SELECTs that return different numbers of columns.
+}
+
+chng {2002 Mar 14 (2.4.2)} {
+- Bug fix: Fix an assertion failure that occurred when ROWID was a column
+ in a SELECT statement on a view.
+- Bug fix: Fix an uninitialized variable in the VDBE that would could an
+ assert failure.
+- Make the os.h header file more robust in detecting when the compile is
+ for windows and when it is for unix.
+}
+
+chng {2002 Mar 13 (2.4.1)} {
+- Using an unnamed subquery in a FROM clause would cause a segfault.
+- The parser now insists on seeing a semicolon or the end of input before
+ executing a statement. This avoids an accidental disaster if the
+ WHERE keyword is misspelled in an UPDATE or DELETE statement.
+}
+
+
+chng {2002 Mar 10 (2.4.0)} {
+- Change the name of the sanity_check PRAGMA to integrity_check
+ and make it available in all compiles.
+- SELECT min() or max() of an indexed column with no WHERE or GROUP BY
+ clause is handled as a special case which avoids a complete table scan.
+- Automatically generated ROWIDs are now sequential.
+- Do not allow dot-commands of the command-line shell to occur in the
+ middle of a real SQL command.
+- Modifications to the "lemon" parser generator so that the parser tables
+ are 4 times smaller.
+- Added support for user-defined functions implemented in C.
+- Added support for new functions: coalesce(), lower(),
+ upper(), and random()
+
- Added support for VIEWs.
+- Added the subquery flattening optimizer.
+- Modified the B-Tree and Pager modules so that disk pages that do not
+ contain real data (free pages) are not journaled and are not
+ written from memory back to the disk when they change. This does not
+ impact database integrity, since the
+ pages contain no real data, but it does make large INSERT operations
+ about 2.5 times faster and large DELETEs about 5 times faster.
+- Made the CACHE_SIZE pragma persistent
+- Added the SYNCHRONOUS pragma
+- Fixed a bug that was causing updates to fail inside of transactions when
+ the database contained a temporary table.
+}
+
+chng {2002 Feb 18 (2.3.3)} {
+- Allow identifiers to be quoted in square brackets, for compatibility
+ with MS-Access.
+- Added support for sub-queries in the FROM clause of a SELECT.
+- More efficient implementation of sqliteFileExists() under Windows.
+ (by Joel Luscy)
+- The VALUES clause of an INSERT can now contain expressions, including
+ scalar SELECT clauses.
+- Added support for CREATE TABLE AS SELECT
+- Bug fix: Creating and dropping a table all within a single
+ transaction was not working.
+}
+
+chng {2002 Feb 14 (2.3.2)} {
+- Bug fix: There was an incorrect assert() in pager.c. The real code was
+ all correct (as far as is known) so everything should work OK if you
+ compile with -DNDEBUG=1. When asserts are not disabled, there
+ could be a fault.
+}
+
+chng {2002 Feb 13 (2.3.1)} {
+- Bug fix: An assertion was failing if "PRAGMA full_column_names=ON;" was
+ set and you did a query that used a rowid, like this:
+ "SELECT rowid, * FROM ...".
+}
+
+chng {2002 Jan 30 (2.3.0)} {
+- Fix a serious bug in the INSERT command which was causing data to go
+ into the wrong columns if the data source was a SELECT and the INSERT
+ clauses specified its columns in some order other than the default.
+- Added the ability to resolve constraint conflicts is ways other than
+ an abort and rollback. See the documentation on the "ON CONFLICT"
+ clause for details.
+- Temporary files are now automatically deleted by the operating system
+ when closed. There are no more dangling temporary files on a program
+ crash. (If the OS crashes, fsck will delete the file after reboot
+ under Unix. I do not know what happens under Windows.)
+- NOT NULL constraints are honored.
+- The COPY command puts NULLs in columns whose data is '\N'.
+- In the COPY command, backslash can now be used to escape a newline.
+- Added the SANITY_CHECK pragma.
+}
+
+chng {2002 Jan 28 (2.2.5)} {
+- Important bug fix: the IN operator was not working if either the
+ left-hand or right-hand side was derived from an INTEGER PRIMARY KEY.
+- Do not escape the backslash '\' character in the output of the
+ sqlite command-line access program.
+}
+
+chng {2002 Jan 22 (2.2.4)} {
+- The label to the right of an AS in the column list of a SELECT can now
+ be used as part of an expression in the WHERE, ORDER BY, GROUP BY, and/or
+ HAVING clauses.
+- Fix a bug in the -separator command-line option to the sqlite
+ command.
+- Fix a problem with the sort order when comparing upper-case strings against
+ characters greater than 'Z' but less than 'a'.
+- Report an error if an ORDER BY or GROUP BY expression is constant.
+}
+
+chng {2002 Jan 16 (2.2.3)} {
+- Fix warning messages in VC++ 7.0. (Patches from nicolas352001)
+- Make the library thread-safe. (The code is there and appears to work
+ but has not been stressed.)
+- Added the new sqlite_last_insert_rowid() API function.
+}
+
+chng {2002 Jan 13 (2.2.2)} {
+- Bug fix: An assertion was failing when a temporary table with an index
+ had the same name as a permanent table created by a separate process.
+- Bug fix: Updates to tables containing an INTEGER PRIMARY KEY and an
+ index could fail.
+}
+
+chng {2002 Jan 9 (2.2.1)} {
+- Bug fix: An attempt to delete a single row of a table with a WHERE
+ clause of "ROWID=x" when no such rowid exists was causing an error.
+- Bug fix: Passing in a NULL as the 3rd parameter to sqlite_open()
+ would sometimes cause a coredump.
+- Bug fix: DROP TABLE followed by a CREATE TABLE with the same name all
+ within a single transaction was causing a coredump.
+- Makefile updates from A. Rottmann
+}
+
+chng {2001 Dec 22 (2.2.0)} {
+- Columns of type INTEGER PRIMARY KEY are actually used as the primary
+ key in underlying B-Tree representation of the table.
+- Several obscure, unrelated bugs were found and fixed while
+ implemented the integer primary key change of the previous bullet.
+- Added the ability to specify "*" as part of a larger column list in
+ the result section of a SELECT statement. For example:
+ "SELECT rowid, * FROM table1;".
+- Updates to comments and documentation.
+}
+
+chng {2001 Dec 14 (2.1.7)} {
+- Fix a bug in CREATE TEMPORARY TABLE which was causing the
+ table to be initially allocated in the main database file instead
+ of in the separate temporary file. This bug could cause the library
+ to suffer an assertion failure and it could cause "page leaks" in the
+ main database file.
+
- Fix a bug in the b-tree subsystem that could sometimes cause the first
+ row of a table to be repeated during a database scan.
+}
+
+chng {2001 Dec 14 (2.1.6)} {
+- Fix the locking mechanism yet again to prevent
+ sqlite_exec() from returning SQLITE_PROTOCOL
+ unnecessarily. This time the bug was a race condition in
+ the locking code. This change effects both POSIX and Windows users.
+}
+
+chng {2001 Dec 6 (2.1.5)} {
+- Fix for another problem (unrelated to the one fixed in 2.1.4)
+ that sometimes causes sqlite_exec() to return SQLITE_PROTOCOL
+ unnecessarily. This time the bug was
+ in the POSIX locking code and should not effect windows users.
+}
+
+chng {2001 Dec 4 (2.1.4)} {
+- Sometimes sqlite_exec() would return SQLITE_PROTOCOL when it
+ should have returned SQLITE_BUSY.
+- The fix to the previous bug uncovered a deadlock which was also
+ fixed.
+- Add the ability to put a single .command in the second argument
+ of the sqlite shell
+- Updates to the FAQ
+}
+
+chng {2001 Nov 23 (2.1.3)} {
+- Fix the behavior of comparison operators
+ (ex: "<", "==", etc.)
+ so that they are consistent with the order of entries in an index.
+- Correct handling of integers in SQL expressions that are larger than
+ what can be represented by the machine integer.
+}
+
+chng {2001 Nov 22 (2.1.2)} {
+- Changes to support 64-bit architectures.
+- Fix a bug in the locking protocol.
+- Fix a bug that could (rarely) cause the database to become
+ unreadable after a DROP TABLE due to corruption to the SQLITE_MASTER
+ table.
+- Change the code so that version 2.1.1 databases that were rendered
+ unreadable by the above bug can be read by this version of
+ the library even though the SQLITE_MASTER table is (slightly)
+ corrupted.
+}
+
+chng {2001 Nov 13 (2.1.1)} {
+- Bug fix: Sometimes arbitrary strings were passed to the callback
+ function when the actual value of a column was NULL.
+}
+
+chng {2001 Nov 12 (2.1.0)} {
+- Change the format of data records so that records up to 16MB in size
+ can be stored.
+- Change the format of indices to allow for better query optimization.
+- Implement the "LIMIT ... OFFSET ..." clause on SELECT statements.
+}
+
+chng {2001 Nov 3 (2.0.8)} {
+- Made selected parameters in API functions const. This should
+ be fully backwards compatible.
+- Documentation updates
+- Simplify the design of the VDBE by restricting the number of sorters
+ and lists to 1.
+ In practice, no more than one sorter and one list was ever used anyhow.
+
+}
+
+chng {2001 Oct 21 (2.0.7)} {
+- Any UTF-8 character or ISO8859 character can be used as part of
+ an identifier.
+- Patches from Christian Werner to improve ODBC compatibility and to
+ fix a bug in the round() function.
+- Plug some memory leaks that use to occur if malloc() failed.
+ We have been and continue to be memory leak free as long as
+ malloc() works.
+- Changes to some test scripts so that they work on Windows in
+ addition to Unix.
+}
+
+chng {2001 Oct 19 (2.0.6)} {
+- Added the EMPTY_RESULT_CALLBACKS pragma
+- Support for UTF-8 and ISO8859 characters in column and table names.
+- Bug fix: Compute correct table names with the FULL_COLUMN_NAMES pragma
+ is turned on.
+}
+
+chng {2001 Oct 14 (2.0.5)} {
+- Added the COUNT_CHANGES pragma.
+- Changes to the FULL_COLUMN_NAMES pragma to help out the ODBC driver.
+- Bug fix: "SELECT count(*)" was returning NULL for empty tables.
+ Now it returns 0.
+}
+
+chng {2001 Oct 13 (2.0.4)} {
+- Bug fix: an obscure and relatively harmless bug was causing one of
+ the tests to fail when gcc optimizations are turned on. This release
+ fixes the problem.
+}
+
+chng {2001 Oct 13 (2.0.3)} {
+- Bug fix: the sqlite_busy_timeout() function was delaying 1000
+ times too long before failing.
+- Bug fix: an assertion was failing if the disk holding the database
+ file became full or stopped accepting writes for some other reason.
+ New tests were added to detect similar problems in the future.
+- Added new operators: & (bitwise-and)
+ | (bitwise-or), ~ (ones-complement),
+ << (shift left), >> (shift right).
+- Added new functions: round() and abs().
+}
+
+chng {2001 Oct 9 (2.0.2)} {
+- Fix two bugs in the locking protocol. (One was masking the other.)
+- Removed some unused "#include " that were causing problems
+ for VC++.
+- Fixed sqlite.h so that it is usable from C++
+- Added the FULL_COLUMN_NAMES pragma. When set to "ON", the names of
+ columns are reported back as TABLE.COLUMN instead of just COLUMN.
+- Added the TABLE_INFO() and INDEX_INFO() pragmas to help support the
+ ODBC interface.
+- Added support for TEMPORARY tables and indices.
+}
+
+chng {2001 Oct 2 (2.0.1)} {
+- Remove some C++ style comments from btree.c so that it will compile
+ using compilers other than gcc.
+- The ".dump" output from the shell does not work if there are embedded
+ newlines anywhere in the data. This is an old bug that was carried
+ forward from version 1.0. To fix it, the ".dump" output no longer
+ uses the COPY command. It instead generates INSERT statements.
+- Extend the expression syntax to support "expr NOT NULL" (with a
+ space between the "NOT" and the "NULL") in addition to "expr NOTNULL"
+ (with no space).
+}
+
+chng {2001 Sep 28 (2.0.0)} {
+- Automatically build binaries for Linux and Windows and put them on
+ the website.
+}
+
+chng {2001 Sep 28 (2.0-alpha-4)} {
+- Incorporate makefile patches form A. Rottmann to use LIBTOOL
+}
+
+chng {2001 Sep 27 (2.0-alpha-3)} {
+- SQLite now honors the UNIQUE keyword in CREATE UNIQUE INDEX. Primary
+ keys are required to be unique.
+- File format changed back to what it was for alpha-1
+- Fixes to the rollback and locking behavior
+}
+
+chng {2001 Sep 20 (2.0-alpha-2)} {
+- Initial release of version 2.0. The idea of renaming the library
+ to "SQLus" was abandoned in favor of keeping the "SQLite" name and
+ bumping the major version number.
+- The pager and btree subsystems added back. They are now the only
+ available backend.
+- The Dbbe abstraction and the GDBM and memory drivers were removed.
+- Copyright on all code was disclaimed. The library is now in the
+ public domain.
+}
+
+chng {2001 Jul 23 (1.0.32)} {
+- Pager and btree subsystems removed. These will be used in a follow-on
+ SQL server library named "SQLus".
+- Add the ability to use quoted strings as table and column names in
+ expressions.
+}
+
+chng {2001 Apr 14 (1.0.31)} {
+- Pager subsystem added but not yet used.
+- More robust handling of out-of-memory errors.
+- New tests added to the test suite.
+}
+
+chng {2001 Apr 6 (1.0.30)} {
+- Remove the sqlite_encoding TCL variable that was introduced
+ in the previous version.
+- Add options -encoding and -tcl-uses-utf to the
+ sqlite TCL command.
+- Add tests to make sure that tclsqlite was compiled using Tcl header
+ files and libraries that match.
+}
+
+chng {2001 Apr 5 (1.0.29)} {
+- The library now assumes data is stored as UTF-8 if the --enable-utf8
+ option is given to configure. The default behavior is to assume
+ iso8859-x, as it has always done. This only makes a difference for
+ LIKE and GLOB operators and the LENGTH and SUBSTR functions.
+- If the library is not configured for UTF-8 and the Tcl library
+ is one of the newer ones that uses UTF-8 internally,
+ then a conversion from UTF-8 to iso8859 and
+ back again is done inside the TCL interface.
+}
+
+chng {2001 Apr 4 (1.0.28)} {
+- Added limited support for transactions. At this point, transactions
+ will do table locking on the GDBM backend. There is no support (yet)
+ for rollback or atomic commit.
+- Added special column names ROWID, OID, and _ROWID_ that refer to the
+ unique random integer key associated with every row of every table.
+- Additional tests added to the regression suite to cover the new ROWID
+ feature and the TCL interface bugs mentioned below.
+- Changes to the "lemon" parser generator to help it work better when
+ compiled using MSVC.
+- Bug fixes in the TCL interface identified by Oleg Oleinick.
+}
+
+chng {2001 Mar 20 (1.0.27)} {
+- When doing DELETE and UPDATE, the library used to write the record
+ numbers of records to be deleted or updated into a temporary file.
+ This is changed so that the record numbers are held in memory.
+- The DELETE command without a WHILE clause just removes the database
+ files from the disk, rather than going through and deleting record
+ by record.
+}
+
+chng {2001 Mar 20 (1.0.26)} {
+- A serious bug fixed on Windows. Windows users should upgrade.
+ No impact to Unix.
+}
+
+chng {2001 Mar 15 (1.0.25)} {
+- Modify the test scripts to identify tests that depend on system
+ load and processor speed and
+ to warn the user that a failure of one of those (rare) tests does
+ not necessarily mean the library is malfunctioning. No changes to
+ code.
+
+}
+
+chng {2001 Mar 14 (1.0.24)} {
+- Fix a bug which was causing
+ the UPDATE command to fail on systems where "malloc(0)" returns
+ NULL. The problem does not appear Windows, Linux, or HPUX but does
+ cause the library to fail on QNX.
+
+}
+
+chng {2001 Feb 19 (1.0.23)} {
+- An unrelated (and minor) bug from Mark Muranwski fixed. The algorithm
+ for figuring out where to put temporary files for a "memory:" database
+ was not working quite right.
+
+}
+
+chng {2001 Feb 19 (1.0.22)} {
+- The previous fix was not quite right. This one seems to work better.
+
+}
+
+chng {2001 Feb 19 (1.0.21)} {
+- The UPDATE statement was not working when the WHERE clause contained
+ some terms that could be satisfied using indices and other terms that
+ could not. Fixed.
+}
+
+chng {2001 Feb 11 (1.0.20)} {
+- Merge development changes into the main trunk. Future work toward
+ using a BTree file structure will use a separate CVS source tree. This
+ CVS tree will continue to support the GDBM version of SQLite only.
+}
+
+chng {2001 Feb 6 (1.0.19)} {
+- Fix a strange (but valid) C declaration that was causing problems
+ for QNX. No logical changes.
+}
+
+chng {2001 Jan 4 (1.0.18)} {
+- Print the offending SQL statement when an error occurs.
+- Do not require commas between constraints in CREATE TABLE statements.
+- Added the "-echo" option to the shell.
+- Changes to comments.
+}
+
+chng {2000 Dec 10 (1.0.17)} {
+- Rewrote sqlite_complete() to make it faster.
+- Minor tweaks to other code to make it run a little faster.
+- Added new tests for sqlite_complete() and for memory leaks.
+}
+
+chng {2000 Dec 4 (1.0.16)} {
+- Documentation updates. Mostly fixing of typos and spelling errors.
+}
+
+chng {2000 Oct 23 (1.0.15)} {
+- Documentation updates
+- Some sanity checking code was removed from the inner loop of vdbe.c
+ to help the library to run a little faster. The code is only
+ removed if you compile with -DNDEBUG.
+}
+
+chng {2000 Oct 19 (1.0.14)} {
+- Added a "memory:" backend driver that stores its database in an
+ in-memory hash table.
+}
+
+chng {2000 Oct 18 (1.0.13)} {
+- Break out the GDBM driver into a separate file in anticipation
+ to added new drivers.
+- Allow the name of a database to be prefixed by the driver type.
+ For now, the only driver type is "gdbm:".
+}
+
+chng {2000 Oct 16 (1.0.12)} {
+- Fixed an off-by-one error that was causing a coredump in
+ the '%q' format directive of the new
+ sqlite_..._printf() routines.
+- Added the sqlite_interrupt() interface.
+- In the shell, sqlite_interrupt() is invoked when the
+ user presses Control-C
+- Fixed some instances where sqlite_exec() was
+ returning the wrong error code.
+}
+
+chng {2000 Oct 11 (1.0.10)} {
+- Added notes on how to compile for Windows95/98.
+- Removed a few variables that were not being used. Etc.
+}
+
+chng {2000 Oct 8 (1.0.9)} {
+- Added the sqlite_..._printf() interface routines.
+- Modified the sqlite shell program to use the new interface
+ routines.
+- Modified the sqlite shell program to print the schema for
+ the built-in SQLITE_MASTER table, if explicitly requested.
+}
+
+chng {2000 Sep 30 (1.0.8)} {
+- Begin writing documentation on the TCL interface.
+}
+
+chng {2000 Sep 29 (Not Released)} {
+- Added the sqlite_get_table() API
+- Updated the documentation for due to the above change.
+- Modified the sqlite shell to make use of the new
+ sqlite_get_table() API in order to print a list of tables
+ in multiple columns, similar to the way "ls" prints filenames.
+- Modified the sqlite shell to print a semicolon at the
+ end of each CREATE statement in the output of the ".schema" command.
+}
+
+chng {2000 Sep 21 (Not Released)} {
+- Change the tclsqlite "eval" method to return a list of results if
+ no callback script is specified.
+- Change tclsqlite.c to use the Tcl_Obj interface
+- Add tclsqlite.c to the libsqlite.a library
+}
+
+chng {2000 Sep 13 (Version 1.0.5)} {
+- Changed the print format for floating point values from "%g" to "%.15g".
+
+- Changed the comparison function so that numbers in exponential notation
+ (ex: 1.234e+05) sort in numerical order.
+}
+
+chng {2000 Aug 28 (Version 1.0.4)} {
+- Added functions length() and substr().
+- Fix a bug in the sqlite shell program that was causing
+ a coredump when the output mode was "column" and the first row
+ of data contained a NULL.
+}
+
+chng {2000 Aug 22 (Version 1.0.3)} {
+- In the sqlite shell, print the "Database opened READ ONLY" message
+ to stderr instead of stdout.
+- In the sqlite shell, now print the version number on initial startup.
+- Add the sqlite_version[] string constant to the library
+- Makefile updates
+- Bug fix: incorrect VDBE code was being generated for the following
+ circumstance: a query on an indexed table containing a WHERE clause with
+ an IN operator that had a subquery on its right-hand side.
+}
+
+chng {2000 Aug 18 (Version 1.0.1)} {
+- Fix a bug in the configure script.
+- Minor revisions to the website.
+}
+
+chng {2000 Aug 17 (Version 1.0)} {
+- Change the sqlite program so that it can read
+ databases for which it lacks write permission. (It used to
+ refuse all access if it could not write.)
+}
+
+chng {2000 Aug 9} {
+- Treat carriage returns as white space.
+}
+
+chng {2000 Aug 8} {
+- Added pattern matching to the ".table" command in the "sqlite"
+command shell.
+}
+
+chng {2000 Aug 4} {
+- Documentation updates
+- Added "busy" and "timeout" methods to the Tcl interface
+}
+
+chng {2000 Aug 3} {
+- File format version number was being stored in sqlite_master.tcl
+ multiple times. This was harmless, but unnecessary. It is now fixed.
+}
+
+chng {2000 Aug 2} {
+- The file format for indices was changed slightly in order to work
+ around an inefficiency that can sometimes come up with GDBM when
+ there are large indices having many entries with the same key.
+ ** Incompatible Change **
+}
+
+chng {2000 Aug 1} {
+- The parser's stack was overflowing on a very long UPDATE statement.
+ This is now fixed.
+}
+
+chng {2000 July 31} {
+- Finish the VDBE tutorial.
+- Added documentation on compiling to WindowsNT.
+- Fix a configuration program for WindowsNT.
+- Fix a configuration problem for HPUX.
+}
+
+chng {2000 July 29} {
+- Better labels on column names of the result.
+}
+
+chng {2000 July 28} {
+- Added the sqlite_busy_handler()
+ and sqlite_busy_timeout() interface.
+}
+
+chng {2000 June 23} {
+- Begin writing the VDBE tutorial.
+}
+
+chng {2000 June 21} {
+- Clean up comments and variable names. Changes to documentation.
+ No functional changes to the code.
+}
+
+chng {2000 June 19} {
+- Column names in UPDATE statements were case sensitive.
+ This mistake has now been fixed.
+}
+
+chng {2000 June 16} {
+- Added the concatenate string operator (||)
+}
+
+chng {2000 June 12} {
+- Added the fcnt() function to the SQL interpreter. The fcnt() function
+ returns the number of database "Fetch" operations that have occurred.
+ This function is designed for use in test scripts to verify that
+ queries are efficient and appropriately optimized. Fcnt() has no other
+ useful purpose, as far as I know.
+- Added a bunch more tests that take advantage of the new fcnt() function.
+ The new tests did not uncover any new problems.
+}
+
+chng {2000 June 8} {
+- Added lots of new test cases
+- Fix a few bugs discovered while adding test cases
+- Begin adding lots of new documentation
+}
+
+chng {2000 June 6} {
+- Added compound select operators: UNION, UNION ALL,
+INTERSECT, and EXCEPT
+- Added support for using (SELECT ...) within expressions
+- Added support for IN and BETWEEN operators
+- Added support for GROUP BY and HAVING
+- NULL values are now reported to the callback as a NULL pointer
+ rather than an empty string.
+}
+
+chng {2000 June 3} {
+- Added support for default values on columns of a table.
+- Improved test coverage. Fixed a few obscure bugs found by the
+improved tests.
+}
+
+chng {2000 June 2} {
+- All database files to be modified by an UPDATE, INSERT or DELETE are
+now locked before any changes are made to any files.
+This makes it safe (I think) to access
+the same database simultaneously from multiple processes.
+- The code appears stable so we are now calling it "beta".
+}
+
+chng {2000 June 1} {
+- Better support for file locking so that two or more processes
+(or threads)
+can access the same database simultaneously. More work needed in
+this area, though.
+}
+
+chng {2000 May 31} {
+- Added support for aggregate functions (Ex: COUNT(*), MIN(...))
+to the SELECT statement.
+- Added support for SELECT DISTINCT ...
+}
+
+chng {2000 May 30} {
+- Added the LIKE operator.
+- Added a GLOB operator: similar to LIKE
+but it uses Unix shell globbing wildcards instead of the '%'
+and '_' wildcards of SQL.
+- Added the COPY command patterned after
+PostgreSQL so that SQLite
+can now read the output of the pg_dump database dump utility
+of PostgreSQL.
+- Added a VACUUM command that that calls the
+gdbm_reorganize() function on the underlying database
+files.
+- And many, many bug fixes...
+}
+
+chng {2000 May 29} {
+- Initial Public Release of Alpha code
+}
+
+puts {
+
+}
+footer {$Id:}
--
cgit v1.1