Small. Fast. Reliable.
Choose any three.

## SQLite Release 3.16.1 On 2017-01-03

1. Fix a bug concerning the use of row values within triggers (see ticket 8c9458e7) that was in version 3.15.0 but was not reported until moments after the 3.16.0 release was published.

   Hashes:

2. SQLITE_SOURCE_ID: "2017-01-03 18:27:03 979f04392853b8053817a3eea2fc679947b437fd"
3. SHA1 for sqlite3.c: 354f6223490b30fd5320b4066b1535e4ce33988d

Changes carried forward from version 3.16.0 (2017-01-02):

1. Uses 9% fewer CPU cycles. (See the CPU performance measurement report for details on how this performance increase was computed.)
2. Added experimental support for PRAGMA functions.
3. Added the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option to sqlite3_db_config().
4. Enhance the date and time functions so that the 'unixepoch' modifier works for the full span of supported dates.
5. Changed the default configuration of the lookaside memory allocator from 500 slots of 128 bytes each into 125 slots of 512 bytes each.
6. Enhanced "WHERE x NOT NULL" partial indexes so that they are usable if the "x" column appears in a LIKE or GLOB operator.
7. Enhanced sqlite3_interrupt() so that it interrupts checkpoint operations that are in process.
8. Enhanced the LIKE and GLOB matching algorithm to be faster for cases when the pattern contains multiple wildcards.
9. Added the SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
10. Added ".mode quote" to the command-line shell.
11. Added ".lint fkey-indexes" to the command-line shell.
12. Added the .imposter dot-command to the command-line shell.
13. Added the remember(V,PTR) SQL function as a loadable extension.
14. Rename the SQLITE_OMIT_BUILTIN_TEST compile-time option to SQLITE_UNTESTABLE to better reflect the implications of using it.

    Bug Fixes:

15. Fix a long-standing bug in the query planner that caused incorrect results on a LEFT JOIN where the left-hand table is a subquery and the join constraint is a bare column name coming from the left-hand subquery. Ticket 2df0107b.
16. Correctly handle the integer literal -0x8000000000000000 in the query planner.

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.