[Haskell-cafe] ANNOUNCE: Database Supported Haskell (DSH)

George Giorgidze giorgidze at gmail.com
Thu Feb 3 17:59:50 CET 2011

I am pleased to announce that Database Supported Haskell (DSH) has been
released on Hackage [1].

DSH 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" is a recommended reading [2]. The package
includes a couple of examples that demonstrate how to use DSH.

[1] http://hackage.haskell.org/package/DSH

[2] http://www-db.informatik.uni-tuebingen.de/files/publications/ferryhaskell.pdf

More information about the Haskell-Cafe mailing list