Change the code that collects samples for sqlite_stat2 so that the first sample taken is the (nRow/(2*SQLITE_INDEX_SAMPLES))th entry in the index, where nRow is the total number of index entries.
check-in: cbfe6e9d user: dan tags: trunk

Change the way an Expr that has been converted to TK_REGISTER stores its original opcode. The previous method, overloading Expr.iColumn, did not work in all cases.
check-in: 71ea9d0e user: dan tags: trunk

Fix obscure issues with the memsys5 memory allocator. Arrange that the
xRealloc() interface to memory allocators is only called with a value
that has been through xRoundup().
check-in: 577bd6f1 user: drh tags: trunk

When shutting down the memsys5 memory allocator, be sure to clear the mutex
pointer in case the next startup does not use a mutex because it is configured
differently.
check-in: d4e7e2d8 user: drh tags: trunk

Fix a bug in mem5.c which would cause an infinite loop on an attempt
to allocate more than 1073741824 bytes of contiguous memory. Also, some
cleanup of mem5.c. More work to do on this.
check-in: 783b751a user: drh tags: trunk

If a binary operator in a WHERE clause that should be performed with no affinity conversions applied to its operands (see http://www.sqlite.org/datatype3.html) is optimized by index lookup, do not apply any conversions to the key value before looking it up in the index. Fix for [93fb9f89d6].
check-in: e72186f2 user: dan tags: trunk

Instead of adding SQLITE_API macros sqlite3.h while creating sqlite3.c, add them as part of generating the sqlite3.h target, while copying from sqlite.h.in to sqlite3.h. This fixes a build problem that was causing multiple SQLITE_API macros to be added to a single line of sqlite3.h, and the problem cited by #4016. (CVS 6971)
check-in: 7f481074 user: danielk1977 tags: trunk

Exclude a static function in test1.c from the build when OMIT_DEPRECATED is defined. This avoids a compiler warning that occurs with some compilers. (CVS 6967)
check-in: ace49950 user: danielk1977 tags: trunk

Enhancement to (6844). If sqlite3_exec() is to return SQLITE_NOMEM because it fails to allocate space for an error message, set the database error-code to SQLITE_NOMEM too. (CVS 6962)
check-in: 8293fa19 user: danielk1977 tags: trunk

If there is a hot-journal in the file-system, a connection with journal_mode=memory set may have to open it to effect rollback. Account for this in pager_end_transaction(). This prevents an assert from failing in the in-memory journal permutation test. (CVS 6947)
check-in: 224bc69a user: danielk1977 tags: trunk

Change an unreachable condition in PagerSharedLock to a NEVER(...). Add an assert to pager_error() to show that it is never called to put an in-memory pager to the error-state. (CVS 6941)
check-in: 1d931f77 user: danielk1977 tags: trunk

Add a NEVER() on an always-false conditional in pager.c.
Make sure the text of the master journal file is zero-terminated before
trying to process it - to prevent a buffer overrun in strlen(). (CVS 6937)
check-in: cc9430e3 user: drh tags: trunk