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

Reply via email to