*** DRAFT ***
SQLite Release 18.104.22.168 On 2013-04-12
- Added the PRAGMA foreign_key_check command.
- Added new extended error codes for all SQLITE_CONSTRAINT errors
- Added the SQLITE_READONLY_ROLLBACK extended error code for when a database
cannot be opened because it needs rollback recovery but is read-only.
- Added SQL functions unicode(A) and char(X1,...,XN).
- Performance improvements for PRAGMA incremental_vacuum, especially in
cases where the number of free pages is greater than what will fit on a
single trunk page of the freelist.
- Improved optimization of queries containing aggregate min() or max().
- Enhance virtual tables so that they can potentially use an index when
the WHERE clause contains the IN operator.
- Allow indices to be used for sorting even if prior terms of the index
are constrained by IN operators in the WHERE clause.
- Enhance the PRAGMA table_info command so that the "pk" column is an
increasing integer to show the order of columns in the primary key.
- Enhance the query optimizer to exploit transitive join constraints.
- Performance improvements in the query optimizer.
- Allow the error message from PRAGMA integrity_check to be longer than
- Improved name resolution for deeply nested queries.
- Added the test_regexp.c module as a demonstration of how to implement
the REGEXP operator.
- Improved error messages in the RTREE extension.
- Enhance the command-line shell so that a non-zero argument to the
".exit" command causes the shell to exit immediately without cleanly
shutting down the database connection.
- Improved error messages for invalid boolean arguments to dot-commands
in the command-line shell.
- Improved error messages for "foreign key mismatch" showing the names of
the two tables involved.
- Remove all uses of umask() in the unix VFS.
- Added the PRAGMA vdbe_addoptrace and PRAGMA vdbe_debug commands.
- Change to use strncmp() or the equivalent instead of memcmp() when
comparing non-zero-terminated strings.
- Update cygwin interfaces to omit deprecated API calls.
- Enhance the spellfix1 extension so that the edit distance cost table can
be changed at runtime by inserting a string like 'edit_cost_table=TABLE'
into the "command" field.
- Bug fix: repair a long-standing problem that could cause incorrect query
results in a 3-way or larger join that compared INTEGER fields against TEXT
fields in two or more places.
- Bug fix: Issue an error message if the 16-bit reference counter on a
view overflows due to an overly complex query.
- Bug fix: Avoid leaking memory on LIMIT and OFFSET clauses in deeply
nested UNION ALL queries.
- Bug fix: Make sure the schema is up-to-date prior to running pragmas
table_info, index_list, index_info, and foreign_key_list.
- Fix for a bug in the ORDER BY optimizer that was introduced in
version 3.7.15 which would sometimes optimize out the sorting step
when in fact the sort was required.
- Fix a long-standing bug in the CAST expression that would recognize UTF16
characters as digits even if their most-significant-byte was not zero.
- Fix a bug in the NEAR operator of FTS3 when applied to subfields.
- Fix a long-standing bug in the storage engine that would (very rarely)
cause a spurious report of an SQLITE_CORRUPT error but which was otherwise
- The SQLITE_OMIT_MERGE_SORT option has been removed. The merge sorter is
now a required component of SQLite.
- Fixed lots of spelling errors in the source-code comments
- Fix a bug (present since version 3.7.13) that could result in database corruption
on windows if two or more processes try to access the same database file at the
same time and immediately after third process crashed in the middle of committing
to that same file. See ticket
7ff3120e4f for further
"2013-04-12 11:52:43 cbea02d93865ce0e06789db95fd9168ebac970c7"
- SHA1 for sqlite3.c: d466b54789dff4fb0238b9232e74896deaefab94
A complete list of SQLite releases
in a single page and a chronology are both also available.
A detailed history of every
check-in is available at
SQLite version control site.
*** DRAFT ***