Small. Fast. Reliable.
Choose any three.
SQLite Release 18.104.22.168 On 2013-03-29
- 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
"2013-03-29 13:44:34 527231bc67285f01fb18d4451b28f61da3c4e39d"
- SHA1 for sqlite3.c: 7a91ceceac9bcf47ceb8219126276e5518f7ff5a
A complete list of SQLite releases
in a single page is also available. A detailed history of every
check-in is available at