Subject: ANN: Takusen 0.8.3
Date: Friday 11th July 2008 10:12:56 UTC (over 9 years ago)
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: http://hackage.haskell.org/packages/archive/Takusen/0.8.3/Takusen-0.8.3.tar.gz The latest code: darcs get http://darcs.haskell.org/takusen Docs: http://darcs.haskell.org/takusen/doc/html/index.html A comprehensive description of API usage can be found in the documentation for module Database.Enumerator (look for the Usage section): http://darcs.haskell.org/takusen/doc/html/Database-Enumerator.html 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 enumerator. Currently we fully support ODBC, Oracle, Sqlite, and PostgreSQL.