DSH-0.12.0.0: DSH.cabal
Name: DSH
Version: 0.12.0.0
Synopsis: Database Supported Haskell
Description:
This is a Haskell library for database-supported program
execution. Using DSH, 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 computations.
.
Database executable program fragments can be written using the monad
comprehension notation [2] 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 is not
suited for production use (we mean it!). This is a proof of concept
implementation only. To learn more about DSH, our paper "The
Flatter, the Better — Query Compilation Based on the Flattening
Transformation." [1] is a recommended reading. The package includes
a couple of examples that demonstrate how to use DSH.
.
The current release does not rely anymore on the loop-lifting
compilation technique and the Pathfinder optimizer. Instead, it
brings a completely rewritten query compiler based on Guy Blelloch's
flattening transformation. This approach leads to a more robust
compilation and produces more efficient query code.
.
To generate actual code for a relational backend, an additional
backend package needs to be installed. Currently, the package
'dsh-sql' on Hackage provides SQL code generation for PostgreSQL.
.
Please read the release notes in 'README.md'.
.
1. <http://db.inf.uni-tuebingen.de/publications/TheFlatter-theBetter-QueryCompilationBasedontheFlatteningTransformation.html>
.
2. <http://db.inf.uni-tuebingen.de/staticfiles/publications/haskell2011.pdf>
License: BSD3
License-file: LICENSE
Author: Alexander Ulrich, George Giorgidze, Jeroen Weijers, Nils Schweinsberg
Maintainer: alex@etc-network.de
Stability: Experimental
Category: Database
Build-type: Simple
Extra-source-files: examples/Example01.hs
examples/Example02.hs
examples/Example03.hs
examples/dshify-tpch.sql
README.md
Cabal-version: >= 1.8
Flag debugcomp
Description: Print debugging information for comprehension rewrites
Default: False
Flag debuggraph
Description: Print debugging information for graph rewrites
Default: False
Library
Extensions: CPP
Build-depends: base >= 4.8 && < 5,
random >= 1.1,
process >= 1.2,
template-haskell >= 2.9,
containers >= 0.5,
mtl >= 2.1,
time >= 1.4,
bytestring >= 0.10,
text >= 1.2,
aeson >= 0.8,
kure >= 2.16,
either >= 4.0,
semigroups >= 0.16,
ansi-wl-pprint >= 0.6.7.2,
dlist >= 0.7,
Decimal >= 0.4,
QuickCheck >= 2.7,
HUnit >= 1.2,
test-framework >= 0.8,
test-framework-quickcheck2 >= 0.3,
test-framework-hunit >= 0.3,
vector >= 0.10,
hashable >= 1.2,
unordered-containers >= 0.2,
algebra-dag >= 0.1.1
Hs-source-dirs: src
if flag(debugcomp)
CPP-Options: -DDEBUGCOMP
if flag(debuggraph)
CPP-Options: -DDEBUGGRAPH
GHC-Options: -Wall -fno-warn-orphans -fprof-auto -O2
Exposed-modules: Database.DSH
Database.DSH.Compiler
Database.DSH.Backend
Database.DSH.Tests
Database.DSH.VL
Database.DSH.Common.QueryPlan
Database.DSH.Common.Opt
Database.DSH.Common.Type
Database.DSH.Common.Vector
Database.DSH.Common.Lang
Database.DSH.Common.Impossible
Other-modules: Database.DSH.Frontend.Internals
Database.DSH.Frontend.Externals
Database.DSH.Frontend.TH
Database.DSH.Frontend.TupleTypes
Database.DSH.Frontend.Builtins
Database.DSH.Translate.Frontend2CL
Database.DSH.Execute.TH
Database.DSH.Execute
Database.DSH.Common.Nat
Database.DSH.Common.Pretty
Database.DSH.Common.RewriteM
Database.DSH.Common.Kure
Database.DSH.Common.TH
Database.DSH.CL.Lang
Database.DSH.CL.Kure
Database.DSH.CL.Primitives
Database.DSH.CL.Opt
Database.DSH.CL.Opt.Auxiliary
Database.DSH.CL.Opt.PostProcess
Database.DSH.CL.Opt.LoopInvariant
Database.DSH.CL.Opt.PredPushdown
Database.DSH.CL.Opt.Normalize
Database.DSH.CL.Opt.CompNormalization
Database.DSH.CL.Opt.PartialEval
Database.DSH.CL.Opt.FlatJoin
Database.DSH.CL.Opt.ThetaJoin
Database.DSH.CL.Opt.SemiJoin
Database.DSH.CL.Opt.AntiJoin
Database.DSH.CL.Opt.NestJoin
Database.DSH.CL.Opt.Resugar
Database.DSH.FKL.Lang
Database.DSH.FKL.Primitives
Database.DSH.FKL.Rewrite
Database.DSH.FKL.Kure
Database.DSH.NKL.Lang
Database.DSH.NKL.Kure
Database.DSH.NKL.Rewrite
Database.DSH.NKL.Primitives
Database.DSH.Translate.CL2NKL
Database.DSH.Translate.FKL2VL
Database.DSH.Translate.NKL2FKL
Database.DSH.Translate.VL2Algebra
Database.DSH.VL.Lang
Database.DSH.VL.Render.Dot
Database.DSH.VL.VectorAlgebra
Database.DSH.VL.Vectorize
Database.DSH.VL.Primitives
Database.DSH.VL.Opt.Properties.BottomUp
Database.DSH.VL.Opt.Properties.Card
Database.DSH.VL.Opt.Properties.Common
Database.DSH.VL.Opt.Properties.Const
Database.DSH.VL.Opt.Properties.Empty
Database.DSH.VL.Opt.Properties.ReqColumns
Database.DSH.VL.Opt.Properties.TopDown
Database.DSH.VL.Opt.Properties.Types
Database.DSH.VL.Opt.Properties.VectorType
Database.DSH.VL.Opt.OptimizeVL
Database.DSH.VL.Opt.Rewrite.Common
Database.DSH.VL.Opt.Rewrite.Expressions
Database.DSH.VL.Opt.Rewrite.PruneEmpty
Database.DSH.VL.Opt.Rewrite.Redundant
Database.DSH.VL.Opt.Rewrite.Aggregation
Database.DSH.VL.Opt.Rewrite.Window
Database.DSH.VL.Opt.Rewrite.Unused
Database.DSH.Tests.Common
Database.DSH.Tests.ComprehensionTests
Database.DSH.Tests.LawTests
Database.DSH.Tests.CombinatorTests
Database.DSH.Tests.DSHComprehensions
executable vldot
Main-is: Database/DSH/Tools/VLDotGen.hs
GHC-Options: -Wall -fno-warn-orphans
hs-source-dirs: src
build-depends: base >= 4.8 && < 5,
mtl >= 2.1,
aeson >= 0.8,
time >= 1.4,
containers >= 0.5,
template-haskell >= 2.9,
bytestring >= 0.10,
Decimal >= 0.4,
ansi-wl-pprint >= 0.6.7.2,
semigroups >= 0.16,
text >= 1.2,
vector >= 0.10,
algebra-dag >= 0.1
GHC-Options: -Wall -fno-warn-orphans
source-repository head
type: git
location: https://github.com/ulricha/dsh