Attaching the test case for this bug, from http://svn.haxx.se/dev/archive-2011-06/0866.shtml. It works with 3.7.6.3-1, fails with 3.7.7-1.
#include <assert.h> #include <stdio.h>
#include "sqlite3.h" #define BUSY_TIMEOUT 10000 int main(void) { sqlite3 *db3; const char *path = "foo.db"; int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; #ifdef SQLITE_OPEN_NOMUTEX flags |= SQLITE_OPEN_NOMUTEX; #endif assert(SQLITE_OK == sqlite3_open_v2(path, &db3, flags, NULL)); assert(SQLITE_OK == sqlite3_busy_timeout(db3, BUSY_TIMEOUT)); assert(SQLITE_OK == sqlite3_busy_timeout(db3, BUSY_TIMEOUT)); { char *errmsg; int err = sqlite3_exec(db3, "PRAGMA case_sensitive_like=1;", NULL, NULL, &errmsg); if (err != SQLITE_OK) printf("Error %d: %s\n", err, errmsg), sqlite3_free(errmsg); } return 0; }