Small. Fast. Reliable.
Choose any three.
Search for:

## SQLite Release 3.14 On 2016-08-08

Celebrating the SQLite "π release" with a home-baked pie.
- Added support for WITHOUT ROWID virtual tables.
- Improved the query planner so that the OR optimization can be used on virtual tables even if one or more of the disjuncts use the LIKE, GLOB, REGEXP, MATCH operators.
- Added the CSV virtual table for reading RFC 4180 formatted comma-separated value files.
- Added the carray() table-valued function extension.
- Enabled persistent loadable extensions using the new SQLITE_OK_LOAD_PERMANENTLY return code from the extension entry point.
- Added the SQLITE_DBSTATUS_CACHE_USED_SHARED option to sqlite3_db_status().
- Add the vfsstat.c loadable extension - a VFS shim that measures I/O together with an eponymous virtual table that provides access to the measurements.
- Improved algorithm for running queries with both an ORDER BY and a LIMIT where only the inner-most loop naturally generates rows in the correct order.
- Enhancements to Lemon parser generator, so that it generates a faster parser.
- The PRAGMA compile_options command now attempts to show the version number of the compiler that generated the library.
- Enhance PRAGMA table_info so that it provides information about eponymous virtual tables.
- Added the "win32-none" VFS, analogous to the "unix-none" VFS, that works like the default "win32" VFS except that it ignores all file locks.
- The query planner uses a full scan of a partial index instead of a full scan of the main table, in cases where that makes sense.
- Allow table-valued functions to appear on the right-hand side of an IN operator.
- Created the dbhash.exe command-line utility.
- Added two new C-language interfaces: sqlite3_expanded_sql() and sqlite3_trace_v2(). These new interfaces subsume the functions of sqlite3_trace() and sqlite3_profile() which are now deprecated.
- Added the json_quote() SQL function to the json1 extension.
- Disable the authorizer callback while reparsing the schema.
- Added the SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option and turned that option on by default when building the command-line shell.

  Bug Fixes:

- Fix the ALTER TABLE command so that it does not corrupt descending indexes when adding a column to a legacy file format database. Ticket f68bf68513a1c15f
- Fix a NULL-pointer dereference/crash that could occurs when a transitive WHERE clause references a non-existent collating sequence. Ticket e8d439c77685eca6.
- Improved the cost estimation for an index scan which includes a WHERE clause that can be partially or fully evaluated using columns in the index and without having to do a table lookup. This fixes a performance regression that occurred for some obscure queries following the ORDER BY LIMIT optimization introduced in version 3.12.0.

  Hashes:

- SQLITE_SOURCE_ID: "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de"
- SHA1 for sqlite3.c: 234a3275d03a287434ace3ccdf1afb208e6b0e92

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.