100 check-ins occurring around 368e86c760477f2e.

Change the sqlite3Atoi64() routine so that it returns failure if not all of
the input characters are consumed, even if it consumed all characters up to
the first 0x00. This has no impact on external APIs as far as I can tell.
check-in: 46d4ffff user: drh tags: trunk

More simplification of the sqlite3AtoF() routine. Add special comments
to indicate branches that are for optimization purposes only and that give
the correct answer even if always or never taken.
check-in: 0065fe97 user: drh tags: trunk

Fix a couple of test script problems on this branch. Both related to the fact that temp database page sizes can no longer be changed by VACUUM or the backup API after the temp db is populated.
check-in: 6bb5aa2b user: dan tags: tempfiles-25

When checking for the WHERE-clause push-down optimization, verify that
all terms of the compound inner SELECT are non-aggregate, not just the
last term. Fix for ticket [f7f8c97e97597].
check-in: ec215f94 user: drh tags: trunk

Change the temporary directory search algorithm on unix so that directories
with only -wx permission are allowed. And do not allow "." to be returned if
it lacks -wx permission.
check-in: 67985761 user: drh tags: trunk

If a call to sqlite3rbu_close() on an rbu handle opened by sqlite3rbu_vacuum() returns other than SQLITE_OK, delete the contents of the rbu_state table. This ensures that if an RBU vacuum operation either completes successfully or encounters an error, the next call to sqlite3rbu_vacuum() with the same parameters starts a new RBU vacuum operation.
Closed-Leaf
check-in: 6e4ac704 user: dan tags: rbu-vacuum

Revert sqlite3_enable_load_extension() to its original long-standing behavior.
Add SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION which will enable only the C-API and
leave the SQL function disabled.
check-in: b2ae5bfa user: drh tags: load-ext-security

API Change: Modify sqlite3_enable_load_extension() so that it only
enables/disables the load_extension() SQL function, and leaves the C-APIs
enabled at all times. In this way, applications can enable extension loading
for the C interface without having to expose that capability to the SQL.
check-in: edb454e4 user: drh tags: load-ext-security

Updates to ensure the values of PRAGMA settings like "page_size", "auto_vacuum", "user_version" and "application_id" are not lost when a database is RBU vacuumed.
check-in: 74ffea76 user: dan tags: rbu-vacuum

When an RBU vacuum is started on a db identified using a URI filename, pass the same URI parameters when creating the new version of the db. This ensures that RBU vacuum works with password protected databases.
check-in: ca021ba8 user: dan tags: rbu-vacuum

Detect attempts to use rbu vacuum on a wal mode database (not allowed). And attempts to write to a database in the middle of an rbu vacuum (which prevents the vacuum from resuming).
check-in: 00b2f4b0 user: dan tags: rbu-vacuum

Fix the sqlite3BtreeDelete() routine so that it preserves the correct
key even when the row being deleted is not on a leaf page.
Fix for ticket [a306e56ff68b8fa56]check-in: 368e86c7 user: drh tags: branch-3.12.0

In the ICU extension toupper() and tolower() SQL functions, avoid calling u_strToUpper() or u_strToLower() a second time if the buffer passed to the first invocation turns out to be large enough.
check-in: d23e5813 user: dan tags: trunk

Since the return value of sqlite3OsClose() is always ignored, we might as
well make it "void" instead of "int", and thereby save 50 bytes in the
compiled binary.
check-in: 7ee570e7 user: drh tags: trunk

Update the documentation for sqlite3_snapshot_cmp() to make the circumstances under which the comparison is valid clearer. Add tests for the same.
Closed-Leaf
check-in: 8fc83474 user: dan tags: snapshot-cmp