100 check-ins occurring around 4f3c8a82fd1c5b14.

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)

Make the ieee754() a built-in function. Add the --ieee754 option to the
".dump" command in the shell to cause it to output floating-point values as
ieee754() calls, so that the floating point number will be reproduced exactly.
Not sure yet that we want to go this way, but it is one option.
(check-in: 7fa8f16e user: drh tags: ieee754)

Initial attempt to get SQLite working with OFD locks on Linux. The code here
does not function correctly. This is an incremental check-in for a work in
progress.
(check-in: 148f8dec user: drh tags: ofd-locks)

Fix problem with window functions min() and max() when used with a PARTITION
clause and a frame starting point other than "UNBOUNDED PRECEDING".
(check-in: 43eb1e75 user: dan tags: exp-window-functions)