100 check-ins occurring around 696dc935f78dc883.

Have sqlite3ota.c use grave accents instead of double-quotes to enclose identifiers in generated SQL. To avoid having the SQL engine substitute a literal string if a column reference cannot be resolved.
check-in: 79f24184 user: dan tags: ota-update

Remove the EXPENSIVE_ASSERTS in pcache.c having to do with the pSynced field
of the Pcache object, as they are incorrect, as revealed by recent pcache
enhancements.
check-in: 69a64560 user: drh tags: trunk

Do not flatten aggregate subqueries that contain min() or max() functions
so that if the min()/max() are discarded by the outer query, they still
function and cause non-aggregate expression to be evaluated on the minimal
or maximal row.
check-in: 0bdf1a08 user: drh tags: trunk

Enhance the sqlite3_user_add() interface to initialize the user
authentication logic. Add test cases for the extra argument on the
end of the authorizer callback.
check-in: 842c6da8 user: drh tags: user-auth

Add support for the extra parameter on the sqlite3_set_authorizer() callback
and support for failing an ATTACH with an authentication-required database
using bad credentials. The extension is now feature complete, but much
testing and bug-fixing remains.
check-in: 596e728b user: drh tags: user-auth

Add the sqlite3_memdebug_title_count global variable, used during debugging
to count the number of invocations of test_memdebug_settitle. By examining
this variable in the debugger after a segfault, one can then set a breakpoint
on test_memdebug_settitle that will fire just before the problem.
check-in: 27e3ca3e user: drh tags: trunk

Query planner heuristic update:
When doing a full table scan on a table that has an equality constraint on
an unindexed column, do not allow the estimated number of output rows to
be greater than half the total number of rows in the table.
check-in: 73954f93 user: drh tags: trunk

Split part of "PRAGMA ota_mode" off into "PRAGMA pager_ota_mode". This allows some specialized custom VFS implementations to intercept and implement the expected pager-related effects of this pragma.
check-in: 209f672e user: dan tags: ota-update

Add support for using separate worker threads to speed large sorts.
The SQLITE_MAX_WORKER_THREADS and SQLITE_DEFAULT_WORKER_THREADS compile-time
options and the SQLITE_LIMIT_WORKER_THREADS argument to
sqlite3_limit() and the "PRAGMA threads=N" pragma are added.
check-in: b1c0f0bc user: drh tags: trunk

When determining whether or not a partial index is usable, do not assume that the cursor number assigned to each table in the query is the same as its index in the FROM clause. Fix for ticket [98d973b8f5].
check-in: fcebca16 user: dan tags: trunk

In the sqlite3_context object, keep a pointer to the result value rather
than storing the result value in the sqlite3_context object and using
memcpy() to move the value back into its register
after the function returns. This runs faster and saves over 500 bytes
of code space.
check-in: 6c1ee3e3 user: drh tags: trunk

Factor out the exception paths from sqlite3ValueToText() into a separate
function so that the main routine is much faster for the common case of
no required type or encoding conversions.
check-in: 1624916c user: drh tags: trunk

Change the page cache so that a new sqlite3_pcache object is allocated as
soon as the page cache is opened, not delayed until the first fetch request.
This give a noticable performance boost. The interface between pager and
the page cache has changed slightly, which might break ZIPVFS.
check-in: f1f94a97 user: drh tags: trunk

Remove the SQLITE_CONFIG_WORKER_THREADS configuration parameter. The number
of worker threads in the sorter is now determined only by the
PRAGMA threads=N setting.
check-in: e3305d4b user: drh tags: threads

Allow CAST expressions and unary "+" operators to be used in the DEFAULT
argument of an ALTER TABLE ADD COLUMN and to be understand on the RHS of
range constraints interpreted by STAT3/4. This involves a rewrite of the
implementation of the CAST operator.
check-in: 91d8a8d0 user: drh tags: trunk

In cases where stat4 data is available but cannot be used because the rhs of a range constraint is too complex a expression, fall back to using the default estimates for number of rows scanned.
check-in: e06dc6f0 user: dan tags: trunk

Change the name of the VdbeMemRelease() macro to VdbeMemReleaseExtern() to
more accurately reflect what it does. Performance enhancement to the
sqlite3VdbeMemRelease() function.
check-in: 3ca5846d user: drh tags: trunk