Change the SQLITE_Stat34 bit of the optimization test-control so that it
prevents STAT4 data from being used but allows it to be loaded into the
Index objects. This permits STAT4 to be turned on and off on a per-statement
basis.
(check-in: 489f3caf user: drh tags: trunk)

Experimental change to ANALYZE so that when computing values for
sqlite_stat1, it uses the maximum number for the number of rows
having equivalent values, rather than the average.
(Leaf
check-in: 085f17e1 user: drh tags: stat1-max)

Allow the VACUUM following SQLITE_DBCONFIG_RESET_DATABASE to proceed even
if the write-version in the header indicates that the database file is not
writable.
(check-in: 3dca8b9d user: drh tags: trunk)

On an UPSERT when the order of constraint checks is rearranged, make sure
that the affinity transformations on the inserted content occur before
any of the constraint checks. Fix for ticket [79cad5e4b2e219dd197242e9e5f4e].
(check-in: d120c45f user: drh tags: trunk)

Identify Select objects within a single statement using small sequential
integers rather than "0x%p". This is more readable and yields the same result
on successive runs.
(check-in: a7cdc5bc user: drh tags: trunk)

Further improvements to bytecode branch testing. Fix cases where the
macros said a branch could not be taken when in fact it could be. Alter
some window function branch coverage macros to indicate that comparison
operands cannot be NULL.
(check-in: 76e42b70 user: drh tags: trunk)

Enhancements and improved documentation to the byte-code branch coverage
testing logic. Provide new macros that allow the code to specify that
some branch instructions can never take the NULL path and that the OP_Jump
opcode is only interested in equal/not-equal. The
SQLITE_TESTCTRL_VDBE_COVERAGE file control callback now works slightly
differently (it provides the callback with a bitmask of the branch action,
rather than an integer).
(check-in: cd2da7e1 user: drh tags: trunk)

Assert that if two functions compare equal in every other way, then they
must both have OVER clauses, or neither has an OVER clause. Use this fact
to simplify expression comparison.
(check-in: 52559ad5 user: drh tags: trunk)

Simplification to the grammar rules for window functions. Fix a memory
leak that can follow an OOM while parsing a comma-separated list of
window definitions.
(check-in: a568f9c9 user: drh tags: trunk)

During WITHOUT ROWID table creation, if the sqlite3CreateTable() call fails
due to an authorizer denying the INSERT into the sqlite_master table, then
detect this fact and abort the CREATE TABLE early, to avoid an assertion
fault.
(check-in: 164b1641 user: drh tags: trunk)

Identify specific FuncDef objects for window functions using the pointer to
the function name (FuncDef.zName) rather than the pointer to the xStep method.
This allows xStep method pointer to be replaced with a single noopStepFunc()
procedure, and thus save having lots of different no-op step functions.
(check-in: 410e13b0 user: drh tags: trunk)

In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that
upgrades from no transaction directly to a write transaction) hits an
SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate
to the caller that the condition may be transient.
(check-in: e6108047 user: dan tags: trunk)

In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that
upgrades from no transaction directly to a write transaction) hits an
SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate
to the caller that the condition may be transient.
(check-in: 221ff63e user: dan tags: exp-busy-snapshot-fix)

Quick patch to the Lemon parser template to avoid an array overread reported
by OSSFuzz. A proper fix involves enhancements to the table generators in
Lemon to make the overread impossible. That fix will take longer to
implement. The current check-in is a stop-gap.
(check-in: 3f6730be user: drh tags: trunk)