Christian Smith wrote:
Created ticket #884, with patch against latest cvs:
http://www.sqlite.org/cvstrac/tktview?tn=884
I fear that your patch has been overcome by events.
A subtle bug has been uncovered in another area
of locking which is going to require reworking large
sections of the commit/rollback logic. It is very
doubtful that your patch will survive this rework.
The bug is as follows: If thread A does
"BEGIN; SELECT * FROM whatever" then thread B does
"UPDATE stuff2 SET f=f+1", the sqlite3_step of
thread B will return SQLITE_DONE and the sqlite3_finalize()
of thread B will return SQLITE_BUSY. So by the
time SQLITE_BUSY is returned, it is too late for
thread B to retry the request. The correct behavior
should be that sqlite3_step() returns SQLITE_BUSY
and can be reissued as many times as needed until
it returns SQLITE_DONE.
--
D. Richard Hipp -- [EMAIL PROTECTED] -- 704.948.4565