Name: Takusen Version: 0.7 License: BSD3 License-file: LICENSE Author: Alistair Bayley, Oleg Kiselyov Copyright: 2003-2007, Alistair Bayley, Oleg Kiselyov Maintainer: alistair@abayley.org, oleg@pobox.com Stability: experimental Homepage: http://darcs.haskell.org/takusen Package-url: http://darcs.haskell.org/takusen Category: Database Build-Depends: base, mtl, time, old-time Build-type: Simple Synopsis: Database library with left-fold interface, for PostgreSQL, Oracle, SQLite, ODBC. Description: 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. 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 Other-modules: Database.InternalEnumerator -- We don't expose the Test modules; the only reason to do so would be so Haddock -- can use them (to stop the warnings "could not find link destination for:"), -- and for that they'd have to be in Exposed-modules. -- Modules in Other-modules are passed to Haddock with --hide=. Ghc-Prof-Options: -prof -auto-all --Ghc-Options: -O2 --Ghc-Options: -optl-Wl--enable-stdcall-fixup Extensions: CPP Extra-tmp-files: Database/Oracle/OCIFunctions_stub.c Database/Oracle/OCIFunctions_stub.h Database/PostgreSQL/PGFunctions_stub.c Database/PostgreSQL/PGFunctions_stub.h