ANN: Takusen 0.8.3

Alistair Bayley alistair at
Fri Jul 11 06:12:56 EDT 2008

Changes since 0.8.1 (I put 0.8.2 up on hackage with an error in Setup.hs,
so it's been skipped):

 - ODBC support: datetime marshalling is improved. For bind parameters
   this uses the timestamp struct for most back-ends, but String for
   MS SQL Server because populating the timestamp struct always failed.

 - more Cabal improvements: now uses configurations, so the Setup.hs
   script should be both simpler and more robust. Requires Cabal >= 1.4.
   Oracle backend on Linux should build nicely.

 - bug fix for a resource leak if an exception was thrown when initiating
   a query (the Statement handle was not closed).

 - some basic result-set validation against the iteratee: if you try to
   fetch a column that is not in the result-set, an error is thrown
   (rather than garbage returned).

The release bundle:
The latest code:
  darcs get

A comprehensive description of API usage can be found in the documentation
for module Database.Enumerator (look for the Usage section):

Future plans:

 - Output bind-parameters and multiple-result sets for ODBC

 - FreeTDS backend (Sybase and MS Sql Server)

 - support for Blobs and Clobs

For those of you unfamiliar with Takusen, here is our HCAR blurb:

Takusen is a DBMS access library. Like HSQL and HDBC, we support
arbitrary SQL statements (currently strings, extensible to anything
that can be converted to a string).

Takusen's 'unique-selling-point' is safety and efficiency.
We statically ensure all acquired database resources - such
as cursors, connection and statement handles - are released, exactly
once, at predictable times. Takusen can avoid loading the whole result
set in memory, and so can handle queries returning millions of rows in
constant space. Takusen also supports automatic marshalling and
unmarshalling of results and query parameters. These benefits come
from the design of query result processing around a left-fold

Currently we fully support ODBC, Oracle, Sqlite, and PostgreSQL.

More information about the Libraries mailing list