2009-05-23: Fixed example to be consistent with new API.
2009-05-16: Fixed mishandling of OCaml-runtime lock when callbacks
raise exceptions, and correctly handle NULL-pointer
results when getting column type declarations.
Thanks to Bruno Daniel <email@example.com> for this
Changed API to expose optional results.
2009-03-09: Fixed potential build problem.
2009-03-01: Added support for user-defined aggregate functions.
Thanks to Anil Madhavapeddy <firstname.lastname@example.org> for the initial
version of the patch!
2009-02-21: Added new function:
Thanks to Paolo Donadeo <email@example.com> for the patch!
2009-01-05: Switched to generational global root registration of
callbacks for better performance.
Requires OCaml 3.11 or higher!!!
2008-12-02: Added function enable_load_extension if it is available.
Thanks to Pietro Abate <Pietro.Abate@pps.jussieu.fr> for
2008-05-11: Added function column_count, used it internally in place of
data_count, and improved documentation of associated
Thanks to James Cheney <firstname.lastname@example.org> for the patch!
2008-05-07: Renamed Data.to_string to Data.to_string_debug for converting
fields to strings with their data constructor. Replaced the
previous function with one that behaves more like users
would expect. Thanks to Stefano Zacchiroli <email@example.com>
for the suggestion.
2008-04-18: Improved backwards compatibility to older versions of SQLite.
2008-04-04: Fixed a build problem on Mac OS X.
2008-03-27: Fixed a build problem on FreeBSD.
Thanks to Jaap Boender <Jaap.Boender@pps.jussieu.fr> for
2008-03-14: Synced with Jane Street tree.
2008-03-05: Added a patch to improve Windows support. Thanks to Alain
Frisch <firstname.lastname@example.org> for the patch!
2007-09-04: Fixed a minor bug converting status codes.
2007-08-20: Fixed a GC-bug related to user-defined SQL-functions.
Thanks to Enrico Tassi <email@example.com> for the
test case to replicate this problem!
2007-06-17: Added support for user-defined scalar functions. Thanks to
Enrico Tassi <firstname.lastname@example.org> for the patch!
Switched to sqlite3_prepare_v2 internally to avoid the older,
deprecated sqlite3_prepare-function. Thanks to Gabriel
Kerneis <email@example.com> for the hint!
Removed exec_sql-function, which was buggy in the last
release anyway (thanks to Paul Stodghill <firstname.lastname@example.org>
for pointing this out!). Its interface hides too much
important information from the user (e.g. BUSY-steps, etc.).
It did not seem possible to design a function that made
it as simple as exec_sql to run an SQL-statement without
inviting the user to write buggy/incomplete code, or that
wouldn't make the interface almost as complicated as just
writing the correct code that handles all cases by oneself.
2007-05-07: Further GC-bug fixes. There was a design bug in the library
that was causing all these GC issues (C-structs allocated
in the OCaml-heap). This obviously seemed safe (and more
efficient) to the initial author, but after extensive checking
it became apparent that this just does not work if C-structs
reference each other, because the GC might move these memory
regions. It seems safer to allocate C-structs with "malloc",
and use an indirection to access them.
2007-05-04: Fixed several GC-bugs, and improved thread interaction.
2007-04-23: callback_exn -> caml_callback_exn.
2007-03-30: Fixed a GC-bug.
2007-03-19: Fixed an installation problem on Cygwin.
Thanks to James Cheney <email@example.com> for the hint!
2007-02-27: Small API-change: the callback for exec is now an optional
Added three more "exec"-functions, which do or do not take
headers or handle NULL-values.
Improved quality of C-code (removed warnings).
2007-02-23: Fixed a bug in the "db_close"-function. Improved documentation.
2007-02-19: Added check for out of memory after malloc.
2007-01-31: Fixed build problem on x86_64: added -fPIC flag to compilation
2007-01-17: Complete rewrite by Markus Mottl <firstname.lastname@example.org>.
2005-04-??: Initial coding (0.1) by
Christian Szegedy <email@example.com>.