[Haskell] ANN: HDBC 0.99.2
jgoerzen at complete.org
Tue Mar 28 11:58:36 EST 2006
I'm pleased to (at long last) announce the release of HDBC version
0.99.2, along with 0.99.2 versions of all database backends. If
things go well, after a few weeks of testing, this version will become
HDBC is a multi-database interface system for Haskell -- more on it
Since 0.99.0, several major things have been updated or enhanced:
* Complete rework of memory management system.
* Standardized memory management system for all database backends.
* Support for querying metadata (type, size, etc.) about columns
both in result sets and in database tables
* Support for querying the level of transaction support in the
* ODBC driver has support for working with databases such as
MySQL that don't support transactions
* Testsuite enhancements for all the above
I believe that these modifications will make HDBC suitable as a
full-fledged backend for HaskellDB.
HDBC is available from:
Version 0.99.2 has also been uploaded to Debian unstable.
Features of HDBC
* Ability to use replacable parameters to let one query be
executed multiple times (eliminates the need for an escape
* Ability to access returned rows by column number
* Ability to read data from the SQL server on-demand rather than
reading the entire result set up front
* HUnit testsuite for each backend driver
* Well-defined standard API and easy backend driver implementation
* Lazy reading of the entire result set (think hGetContents, but
for the results of SELECT) (see sFetchAllRows)
* Support for translation between Haskell and SQL types
* Support for querying database server properties
* Add-on package (hdbc-missingh) to integrate with MissingH,
providing a database backend for AnyDBM.
* Support for querying metadata such as column names.
In addition, there is extensive documentation for HDBC.
Backend drivers exist for Sqlite v3, PostgreSQL, and ODBC. MySQL is
supported via the ODBC driver and the ODBC testsuite passes against
MySQL (saving the transaction tests, which aren't supported by MySQL).
In addition, there is a odbc-missingh package that can turn and HDBC
database into an AnyDBM backend for MissingH. (Sqlite3 could be very
Darcs repositories are available for all of this at
More information about the Haskell