Takusen-0.7: Takusen.cabal
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=<module-name>.
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