Takusen-0.8.3: Takusen.cabal
Name: Takusen
Version: 0.8.3
License: BSD3
License-file: LICENSE
Author: Alistair Bayley, Oleg Kiselyov
Copyright: 2003-2008, 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-type: Custom
Cabal-Version: >= 1.4
Synopsis: Database library with left-fold interface, for PostgreSQL, Oracle, SQLite, ODBC.
Description:
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, connections, 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.
Extra-tmp-files:
Database/Oracle/OCIFunctions_stub.c
Database/Oracle/OCIFunctions_stub.h
Database/PostgreSQL/PGFunctions_stub.c
Database/PostgreSQL/PGFunctions_stub.h
Flag odbc
Description: ODBC backend
Default: False
Flag oracle
Description: Oracle OCI backend
Default: False
Flag postgres
Description: PostgreSQL backend
Default: False
Flag sqlite
Description: SQLite3 backend
Default: False
Library
Exposed-modules:
Database.Enumerator
, Database.Util
, Database.Stub.Enumerator
, Control.Exception.MonadIO
, Foreign.C.UTF8
If flag(odbc)
Exposed-modules:
Database.ODBC.Enumerator
, Database.ODBC.OdbcFunctions
Build-Tools: odbcconf
If os(windows)
extra-libraries: odbc32
ld-options: --enable-stdcall-fixup
Else
extra-libraries: odbc
If flag(oracle)
Exposed-modules:
Database.Oracle.Enumerator
, Database.Oracle.OCIConstants
, Database.Oracle.OCIFunctions
Build-Tools: sqlplus
If os(windows)
Extra-Libraries: oci
Else
Extra-Libraries: clntsh
If flag(postgres)
Exposed-modules:
Database.PostgreSQL.Enumerator
, Database.PostgreSQL.PGFunctions
Build-Tools: pg_config
Extra-Libraries: pq
If flag(sqlite)
Exposed-modules:
Database.Sqlite.Enumerator
, Database.Sqlite.SqliteFunctions
If os(windows)
Build-Tools: sqlite3
else
PkgConfig-Depends: sqlite3
Build-Tools: sqlite3
Extra-Libraries: sqlite3
Build-Depends: base, mtl, time, old-time
-- Database.Enumerator uses CPP to make a deriving clause palatable for Haddock.
Extensions: CPP
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 -- doesn't work with Data.Time, due to some missing header file