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]