On Sun, Jun 26, 2011 at 3:59 PM, Greg Stein <gst...@gmail.com> wrote:
> Hey all, > > There is a bug in 3.7.7 that affects Apache Subversion. We've verified > that it is this latest release, as prior releases have worked just > fine for us. > > Below is the reproduction script, thanks to Daniel Shahaf. With this > pragma not working, we cannot even start up :-( > Thanks for the test case. The pragma is actually working. The bug is that it is returning SQLITE_SCHEMA instead of SQLITE_OK. If you wanted to, you could just ignore the error and keep going and everything would work. The bug was introduced here: http://www.sqlite.org/src/ci/957b2ab67c And more specifically with the removal of the "p->expired = 0" line which is shown as the very first change here: http://www.sqlite.org/src/fdiff?v1=0505dc4f7ff3cf35&v2=0b2e2880f13af400 The big mystery is why this problem is not showing up in our rather extensive test suite. I'm still investigating that aspect of the issue. > Please help! > > Thanks, > -g > > ps. maybe this belongs on -dev, but I'm pending on its moderated > subscription... > > [[[ > #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; > } > ]]] > _______________________________________________ > sqlite-users mailing list > sqlite-us...@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org