The Takusen package (version 0.7)
Takusen is a DBMS access library. It has a backend for Oracle on Unix, Linux or Windows via OCI, and a stub to test the library without any database. The infrastructure and the stub let one interface natively with other databases. The distinguished feature of Takusen is processing query results using a left-fold enumerator. The user supplies an iteratee function, which receives rows one-at-a-time from the result-set. The number of the arguments to the iteratee is the number of the columns in the result-set, plus the seed. Each column in the result-set has its own Haskell type. The latter could be a Maybe type if the particular iteratee wishes to process NULLs. The benefits are: more convenient and intuitive enumeration, iteration, and accumulation (see tests for examples); the retrieved data are not merely strings but have Haskell types: Int, Float, Date, etc.; buffer preallocation; pre-fetching; support for both enumerators and cursors, proper handling of all errors including various IO errors. No unsafe operations are used.
| Other versions | 0.8, 0.8.1 |
|---|---|
| Dependencies | base, mtl, old-time, time |
| License | BSD3 |
| Copyright | 2003-2007, Alistair Bayley, Oleg Kiselyov |
| Author | Alistair Bayley, Oleg Kiselyov |
| Maintainer | alistair@abayley.org, oleg@pobox.com |
| Stability | experimental |
| Category | Database |
| Home page | http://darcs.haskell.org/takusen |
| Exposed modules | Database.Enumerator, Database.Util, Database.ODBC.Enumerator, Database.ODBC.OdbcFunctions, Database.Oracle.Enumerator, Database.Oracle.OCIConstants, Database.Oracle.OCIFunctions, Database.PostgreSQL.Enumerator, Database.PostgreSQL.PGFunctions, Database.Sqlite.Enumerator, Database.Sqlite.SqliteFunctions, Database.Stub.Enumerator, Control.Exception.MonadIO, Foreign.C.UTF8 |
| Upload date | Mon Feb 18 14:50:29 PST 2008 |
| Uploaded by | DonaldStewart |
| Build failure | ghc-6.8 (log) |
Downloads
- Takusen-0.7.tar.gz (Cabal source package)
- package description (included in the package)
