Small. Fast. Reliable.
Choose any three.

About Documentation Download License Support Purchase |

## SQLite Release 3.7.16 On 2013-03-18

- 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 20000 bytes.
- 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. Ticket fc7bd6358f
- 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.
- SQLITE_SOURCE_ID: "2013-03-18 11:39:23 66d5f2b76750f3520eb7a495f6247206758f5b90"
- SHA1 for sqlite3.c: 7308ab891ca1b2ebc596025cfe4dc36f1ee89cf6

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.