ANN: Takusen 0.8.4

ANN: Takusen 0.8.4 This is mainly a "get it working with ghc-6.10" release. Changes since 0.8.3: - ODBC support: some bug fixes, and basic support for Out-parameters. There is at least one major outstanding bug with Out-parameters, where marshalling a String output bind-variable doesn't work correctly (if it was modified, you still get the String you passed in back, rather than the new String). - Sqlite: bug fix for resource leak: if a command (like rollback or commit) raised an error, the prepared-statement handle was not closed. - cabal: requires cabal 1.6 (or later). With ghc-6.6 on Windows you will need a later cabal than 1.6.0.1, as there is a bug which prevents building (setup configure fails with "setup: fdGetMode: invalid argument (Invalid argument)"). Eric Mertens patch for ODBC on OS x. Greg Leclerq patch for cabal 1.6. Thanks also to Austin Siepp and Brian Callendar for their patches. - ghc-6.10: will build with ghc's 6.10, 6.8, 6.6. Note that Takusen won't work with ghc-6.10.2 out-of-the-box, because the time package is missing. If you install time manually then it should be OK (but this is untested). We use the new extensible exceptions, but we have done so by including it within our own source tree. This will make it easier to use Takusen with older ghc's, and reduces the number of external package dependencies. We have dropped support for 6.4. That's not to say Takusen isn't usable with 6.4, just that we no longer test that configuration. The release bundle: http://hackage.haskell.org/packages/archive/Takusen/0.8.4/Takusen-0.8.4.tar.gz The latest code: darcs get http://darcs.haskell.org/takusen Docs: http://darcs.haskell.org/takusen/doc/html/index.html If you have cabal-install, then this command should work: cabal install Takusen --flags="sqlite odbc oracle postgres" ... but it doesn't (at least for the version of cabal-install that I have) because the .tar.gz file I uploaded has a bogus checksum. 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 Note that the haddock docs won't build with cabal-1.6.0.2 or earlier. This is because our literate-haskell source files need to be properly preprocessed before being passed to haddock. At the time of writing, you'll need the cabal HEAD to build the docs. Future plans: - Output bind-parameters and multiple-result sets for ODBC - support for Blobs and Clobs - FreeTDS backend (Sybase and MS Sql Server)... maybe 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.