On Thu, Mar 23, 2017 at 10:17 AM, Scott Robison <sc...@casaderobison.com> wrote: > On Thu, Mar 23, 2017 at 9:21 AM, Dan Kennedy <danielk1...@gmail.com> wrote: >> How did you trip the assert()? i.e. what is the database schema and query >> that cause it to fail? > > In trying to track down issues recently, a team member defined > SQLITE_DEBUG. My "fix" was to simply undefine SQLITE_DEBUG, thus > compiling out the assertions anyway. Since we won't have it in > production code, I wouldn't call it a bug, just an over enthusiastic > bit of error prevention. > > The query was apparently a vacuum. I'll synthesize a test case and > submit it later.
Note: I'm on Windows 10 and reproduced this with the amalgamation downloaded today from http://sqlite.com/2017/sqlite-amalgamation-3170000.zip Step 1: Using sqlite3 shell, created a database test.db with the following schema: CREATE TABLE a(b text collate binary, c text collate nocase); CREATE INDEX ab on a(b); CREATE INDEX ac on a(c); Note: I did not insert any data. It is not necessary. Step 2: Copied the 35 line sample C code from http://sqlite.com/quickstart.html into sqlite-assert-test.c. My only change was to change the sqlite3.h include from <sqlite3.h> to "sqlite3.h" Step 3: Extracted the amalgamation files into the directory with sqlite-assert-test.c. Step 4: Opened a 64 bit native build command prompt from Visual C++ 2015. Step 5: Build the test program as follows: cl /Zi -DSQLITE_DEBUG sqlite-assert-test.c sqlite3.c Step 6: Ran the resulting executable as: sqlite-assert-test.exe test.db vacuum It throws an assertion, presumably trying to vacuum the ab index. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users