DSH: Database Supported Haskell

[ bsd3, database, library, program ] [ Propose Tags ]

This is a Haskell library for database-supported program execution. Using this library a relational database management system (RDBMS) can be used as a coprocessor for the Haskell programming language, especially for those program fragments that carry out data-intensive and data-parallel computation.

Database executable program fragments can be written using the list comprehension notation (with modest syntax changes due to quasiquoting) and list processing combinators from the Haskell list prelude. Note that rather than embedding a relational language into Haskell, we turn idiomatic Haskell programs into SQL queries.

DSH faithfully represents list order and nesting, and compiles the list processing combinators into relational queries. The implementation avoids unnecessary data transfer and context switching between the database coprocessor and the Haskell runtime by ensuring that the number of generated relational queries is only determined by the program fragment's type and not by the database size.

DSH can be used to allow existing Haskell programs to operate on large scale data (e.g., larger than the available heap) or query existing database resident data with Haskell.

Note that this package is flagged experimental and therefore not suited for production use. This is a proof of concept implementation only. To learn more about DSH, our paper entitled as "Haskell boards the Ferry: Database-supported program execution for Haskell" [1] is a recommended reading. The package includes a couple of examples that demonstrate how to use DSH.

  1. http://www-db.informatik.uni-tuebingen.de/files/publications/ferryhaskell.pdf

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.4, 0.4.0.1, 0.4.1, 0.4.2, 0.4.2.1, 0.4.3, 0.5, 0.5.3, 0.5.5, 0.6, 0.6.1, 0.6.2, 0.6.6, 0.7, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.8.1, 0.7.8.2, 0.8.0.1, 0.8.1.0, 0.8.2.0, 0.8.2.1, 0.8.2.2, 0.8.2.3, 0.10.0.0, 0.10.0.1, 0.10.0.2, 0.12.0.0, 0.12.0.1
Dependencies array (>=0.3), base (>=4.2 && <5), bytestring (>=0.9), containers (>=0.3), convertible (>=1.0), csv (>=0.1), FerryCore (>=0.4), haskell-src-exts (>=1.9), HaXml (>=1.20), HDBC (>=2.2), mtl (>=2.0.1), Pathfinder (>=0.5), syb (>=0.1), syntax-trees (>=0.1.2), template-haskell (>=2.4), text (>=0.11) [details]
License BSD-3-Clause
Author George Giorgidze, Tom Schreiber, Nils Schweinsberg and Jeroen Weijers
Maintainer giorgidze@gmail.com, jeroen.weijers@uni-tuebingen.de
Category Database
Uploaded by GeorgeGiorgidze at 2011-02-23T14:20:45Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 30305 total (76 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]