100 check-ins occurring around efb4aab0caa41457.

Update error message text for standard error codes to better describe the
latest usage of those error codes. Modify sqlite3_open_v2() so that it does
return a valid sqlite3 object in the event of SQLITE_MISUSE due to bad
open flags, so that sqlite3_errmsg() does not report "out of memory" in that
case.
(check-in: f27b6370 user: drh tags: trunk)

Add new PRAGMAs: "function_list", "module_list", and "pragma_list". All are
enclosed within #ifdef SQLITE_INTROSPECTION_PRAGMAS. The compile-time option
is not on ctime.c yet, since these are still experimental and one can always
test "PRAGMA pragma_list" and see whether or not it returns an empty set.
(check-in: e0b6ae92 user: drh tags: trunk)

In lsmtest, use an empty string instead of ":memory:" when requesting a
temporary database from SQLite. This prevents other test code from trying to
unlink() ":memory:", which fails on win32.
(check-in: 281ad505 user: dan tags: trunk)

Enhance the sqlite3VdbeMultiLoad() interface to automatically generate the
OP_ResultRow opcode on PRAGMA implementations, for a small reduction in the
library footprint.
(check-in: c46f0f07 user: drh tags: trunk)

Change the (machine-generated) keywordhash.h file to increase the scope of the
tables used for keyword matching, so that the tables are accessible to
functions other then keywordCode().
(check-in: c5ed5ebd user: drh tags: trunk)

Avoid constantly freeing and reallocing small internal buffers associated with
LSM cursors. Instead, allow them to persist for the lifetime of the cursor if
they are LSM_SEGMENTPTR_FREE_THRESHOLD (default 1024) bytes or smaller. This change is based on research by Martijn Blaauw.
(check-in: bacfe8cb user: dan tags: trunk)

In the command-line shell, add the -quote option to start up in quote mode.
Enhance the ".mode" command so that it reports the current output mode if
given no arguments.
(check-in: 5e3f9ea5 user: drh tags: trunk)

Edit comments in sqlite.h.in used for generating documentation, to improve
the description of the new sqlite3_prepare_v3() interfaces, and other
miscellaneous cleanup. No changes to executable code.
(check-in: 284707a7 user: drh tags: trunk)

Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the
extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as
one bit in that argument. Use the new option in FTS3, FTS5, and RTREE.
(check-in: 03977248 user: drh tags: trunk)

Add the "stmts" virtual table to the amalgamation, activated when compiled
using -DSQLITE_ENABLE_STMTSVTAB. Add the SQLITE_STMTSTATUS_REPREPARE and
SQLITE_STMTSTATUS_RUN statistics outputs from sqlite3_stmt_status() and add
corresponding columns to the stmts virtual table. Change the numeric value
of SQLITE_STMTSTATUS_MEMUSED to get it out of the way of counter values.
(check-in: 88976ae3 user: drh tags: trunk)

The query planner examines the values of bound parameters to help determine
if a partial index is usable. Reprepares may happen if the bindings change.
This behavior is disabled by the QPSG setting.
(check-in: c322bfa2 user: drh tags: trunk)

Add the SQLITE_STMTSTATUS_REPREPARE and SQLITE_STMTSTATUS_RUN options to
sqlite3_stmt_status(). Use this for two new columns in the stmts virtual
table.
(Closed-Leaf
check-in: b0b0c8f8 user: drh tags: stmts-vtab)