doc.txt

For more information, see:

For more information, see:

   http://www.elemental-programming.org/Bigloo%20SQLI.html

   (c) 2005/2006/2007 Hans Oesterholt-Dijkema. License: LGPL.

You can also look in the manual section of the Help Desk for "SQLD-SQLITE".

PROBLEMS WITH THREADS AND SQLITE ON LINUX (2007)
------------------------------------------------
Sqlite3 crashes when multiple threads go through the sqlite3 ffi interface.
Especially when the busy handler callback is called from multiple threads. A 
work around has been made, using semaphores on the begin, query, commit and 
rollback interfaces of the sqld-sqlite driver. This means that all queries 
through the sqlite interface are serialized.

Also, when when within a transaction, all other threads are blocked from querying
sqlite3. A BAD SITUATION, BUT BETTER THEN A CRASH.

When your program goes in error during a transaction, you'll be essentially locked
out of the sqlite3 code. Use (sqld 'clean) in this situation. It will clear 
the semaphores.

UNIX
----
NB. On Unix, try putting libsqlite3.so in /usr/local/lib or /usr/lib
Otherwise, set the environment variable LIBSQLITE=<directory of libsqlite3.so>
sqld-sqlite will search for either sqlite3 or libsqlite3 in that directory

DEBIAN 3.1 SARGE
----------------
Note on a standard debian installation: There will be no libsqlite3.so, instead
only a libsqlite3.so.0. This library won't be found.

---
$Id: doc.txt,v 1.3 2007/06/25 18:49:00 hoesterholt Exp $