Small. Fast. Reliable.
Choose any three.

## SQLite Release 3.10.2 On 2016-01-20

Critical bug fix:

1. 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:

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

   Hashes:

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

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

New feature:

1. Add the SQLITE_FCNTL_JOURNAL_POINTER file control.

   Bug fix:

2. 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:

1. Added support for LIKE, GLOB, and REGEXP operators on virtual tables.
2. Added the colUsed field to sqlite3_index_info for use by the sqlite3_module.xBestIndex method.
3. Enhance the PRAGMA cache_spill statement to accept a 32-bit integer parameter which is the threshold below which cache spilling is prohibited.
4. 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.
5. Added the "--transaction" option to sqldiff.
6. Added the sqlite3_db_cacheflush() interface.
7. Added the sqlite3_strlike() interface.
8. When using memory-mapped I/O map the database file read-only so that stray pointers and/or array overruns in the application cannot accidentally modify the database file.
9. 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.
10. 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.)
11. Added the json_group_array() and json_group_object() SQL functions in the json extension.
12. Added the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option.
13. Many small performance optimizations.

    Portability enhancements:

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

    Enhancements to the command-line shell:

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

    Enhancements to makefiles:

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

    Important fixes:

19. 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.
20. Fix an infinite-loop in the query planner that could occur on malformed common table expressions.
21. 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.