I have a program (spey, http://spey.sf.net, an email spam filter) that 
maintains a database of recently seen email addresses using Sqlite. Everyone 
works very nicely. Periodically a process runs that purges the database of 
stale addresses. This is just a little script that runs the sqlite shell 
command with a fixed SQL script.

The last thing on the script is VACUUM, which I put in to shrink the database.

However, running VACUUM seems to confuse the main program. After vacuuming, 
the next time the main program tries to touch the database, it gets an error 
back (data access error, error number -1). It seems that VACUUM causes any 
existing database handles to become stale. Removing the call to VACUUM makes 
everything work fine.

I'm running sqlite 0.8.6 on a Debian stable build. I have no idea whether it's 
been compiled with the thread-safety flag or not, there are no release notes.

Is this expected behaviour? If so, why doesn't the documentation warn people 
that VACUUM is not thread-safe? And if not, why is my program falling over?

-- 
+- David Given --McQ-+ "Opportunity is missed by most people because it's
|  [EMAIL PROTECTED]    | dressed in overalls and looks like work." ---
| ([EMAIL PROTECTED]) | Thomas Edison
+- www.cowlark.com --+ 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to