On Apr 20, 2009, at 6:59 AM, Ralf Junker wrote: > Hello Ken, > >> I think the problem is not in the locking mode but rather: >> >> PRAGMA journal_mode = off; >> >> I'm not sure if rollbacks actually function with the journalling >> turned off. > > According to the documentation, journal_mode=off disables rollback. > >> Can you try it without the above line? > > I had already looked at the issue again and now blieve that it is an > inconsistency between journal_mode=off and locking_mode. > > I filed it as a bug report at http://www.sqlite.org/cvstrac/tktview?tn=3811 > but it has not yet been addressed by the SQLite developers. > >> The logic implies that the rows in question should not exist since >> they are rolledback. > > No. With journal_mode=off, rows in question SHOULD exist, but > miraculously do when in exclusive mode.
Ticket #3811 has been addressed by enhancing the documentation to explain that journal_mode changes are only guaranteed to work if they occur prior to the first transaction. Whether or not a journal_mode change works after the start of the first transaction is undefined. Even as I type this message, it occurs to me that we should probably lock down the journal_mode at the start of the first transaction. Otherwise, there are a bazillion cases of journal_mode changes at strange times (such as in the middle of a nested transaction) that could cause problems (segfaults) even if their behavior is undefined. D. Richard Hipp d...@hwaci.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users