Small. Fast. Reliable.
Choose any three.

About Documentation Download License Support Purchase |

## SQLite Release 3.10.2 On 2016-01-20

Critical bug fix:

- Version 3.10.0 introduced a case-folding bug in the LIKE operator which is fixed by this patch release. Ticket 80369eddd5c94.

  Other miscellaneous bug fixes:

- Fix a use-after-free that can occur when SQLite is compiled with -DSQLITE_HAS_CODEC.
- Fix the build so that it works with -DSQLITE_OMIT_WAL.
- Fix the configure script for the amalgamation so that the --readline option works again on Raspberry PIs.

  Hashes:

- SQLITE_SOURCE_ID: "2016-01-20 15:27:19 17efb4209f97fb4971656086b138599a91a75ff9"
- SHA1 for sqlite3.c: f7088b19d97cd7a1c805ee95c696abd54f01de4f

Changes carried forward from version 3.10.1 (2016-01-14):

New feature:

- Add the SQLITE_FCNTL_JOURNAL_POINTER file control.

  Bug fix:

- Fix a 16-month-old bug in the query planner that could generate incorrect results when a scalar subquery attempts to use the block sorting optimization. Ticket cb3aa0641d9a4.

Changes carried forward from version 3.10.0 (2016-01-06):

General improvements:

- Added support for LIKE, GLOB, and REGEXP operators on virtual tables.
- Added the colUsed field to sqlite3_index_info for use by the sqlite3_module.xBestIndex method.
- Enhance the PRAGMA cache_spill statement to accept a 32-bit integer parameter which is the threshold below which cache spilling is prohibited.
- On unix, if a symlink to a database file is opened, then the corresponding journal files are based on the actual filename, not the symlink name.
- Added the "--transaction" option to sqldiff.
- Added the sqlite3_db_cacheflush() interface.
- Added the sqlite3_strlike() interface.
- When using memory-mapped I/O map the database file read-only so that stray pointers and/or array overruns in the application cannot accidently modify the database file.
- Added the experimental sqlite3_snapshot_get(), sqlite3_snapshot_open(), and sqlite3_snapshot_free() interfaces. These are subject to change or removal in a subsequent release.
- Enhance the 'utc' modifier in the date and time functions so that it is a no-op if the date/time is known to already be in UTC. (This is not a compatibility break since the behavior has long been documented as "undefined" in that case.)
- Added the json_group_array() and json_group_object() SQL functions in the json extension.
- Added the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option.
- Many small performance optimizations.

  Portability enhancements:

- Work around a sign-exension bug in the optimizer of the HP C compiler on HP/UX. (details)

  Enhancements to the command-line shell:

- Added the ".changes ON|OFF" and ".vfsinfo" dot-commands.
- Translate between MBCS and UTF8 when running in cmd.exe on Windows.

  Enhancements to makefiles:

- Added the --enable-editline and --enable-static-shell options to the various autoconf-generated configure scripts.
- Omit all use of "awk" in the makefiles, to make building easier for MSVC users.

  Important fixes:

- Fix inconsistent integer to floating-point comparison operations that could result in a corrupt index if the index is created on a table column that contains both large integers and floating point values of similar magnitude. Ticket 38a97a87a6.
- Fix an infinite-loop in the query planner that could occur on malformed common table expressions.
- Various bug fixes in the sqldiff tool.

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.