100 check-ins occurring around 1e5489faff093d6a.

The SQLITE_IOERR_BLOCKED extended error code is not longer used, so remove
assert() statements and documentation for that error code. Also make other
documentation improvements.
check-in: 36b7c5ce user: drh tags: trunk

Oops! This check-in was on trunk. But it contains a debugging printf().
Original comment:
When the estimated cost to do a sort overwhelms the estimated cost to do
individual table lookups, make sure that the table lookup costs are still
taken into consideration when selecting the lookup algorithm.
check-in: ec5d84ba user: drh tags: query-planner-fix

A simpler fix for ticket [3a88d85f36704eebe1] - one that uses less code.
The error message is not quite as good, but as this error has apparently
not previously occurred in over 8 years of heavy use, that is not seen as
a serious problem.
check-in: 0ad1ed8e user: drh tags: trunk

Add the ability to evaluate IN operators as a sequence of comparisons as
an alternative to the long-standing algorithm of building a lookup table.
Use the new implementation in circumstances where it is likely to be faster,
such as when the RHS of the IN changes between successive evaluations.
check-in: 95286821 user: drh tags: trunk

Part of the change in the previous check-in was incorrect and can result
in an incorrect UPDATE for WITHOUT ROWID tables. This check-in fixes the
problem.
check-in: ee5f6eae user: drh tags: IN-operator-improvements

Enhancements to the code generator for the IN operator that result in much
faster queries in some cases, for example when the RHS of the IN operator
changes for each row of a large table scan.
check-in: 436e8842 user: drh tags: IN-operator-improvements

Remove an unnecessary OP_Null in the IN-operator logic. Attempt to clarify
comments explaining the IN-operator code, though it is not clear that the
comments are correct even yet - more work to be done.
check-in: c11e55fa user: drh tags: trunk

Clean up the IN operator code generation logic to make it easier to reason
about. In the process, improve code generation to omit some unused OP_Null
operations.
check-in: 7c6fbcfe user: drh tags: trunk

The idea of coding IN operator with a short list on the RHS as an OR expression
turns out to be helpful. If the list is of length 1 or 2, the OR expression
is very slightly faster, but the ephemeral table approach is clearly better for
all list lengths greater than 2. Better to keep the code simple.
Closed-Leaf
check-in: e13175d3 user: drh tags: IN-operator-improvements

Deactivate the DISTINCT in a SELECT on the right-hand side of an IN operator,
since it should not make any difference in the output but dues consume extra
memory and CPU time.
check-in: f4cb5365 user: drh tags: trunk

Add the "eForce" parameter to the sqlite3_multiplex_shutdown() entry point
in test_multiplex.c. Shutdown is forced if true. Shutdown is not done if
there are pending database connections and eForce is false, but an error log
entry is made instead.
check-in: c7303d01 user: drh tags: trunk

Ensure that the correct number of columns in a UNIQUE index are checked for
uniqueness, regardless of whether or not the original table has a ROWID or
if the columns are NOT NULL, etc. Ticket [9a6daf340df99ba93c].
check-in: 6b785e92 user: drh tags: trunk

Improvements to comments in the multi-threaded sorter. Also include a
function name change for clarity. And add a test to help show that the
MergeEngine object is only used by a single thread.
check-in: 9af50a87 user: drh tags: threads