packages feed

DSH-0.10.0.2: DSH.cabal

Name:                DSH
Version:             0.10.0.2
Synopsis:            Database Supported Haskell
Description:
  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
  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 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.
  .
  In contrast to the DSH version described in [1], the current release does
  not rely anymore on the loop-lifting compilation technique together with 
  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.
  .
  Please read the release notes in 'README.md'.
  .
  1. <http://db.inf.uni-tuebingen.de/staticfiles/publications/ferryhaskell.pdf>
  .
  2. <http://db.inf.uni-tuebingen.de/staticfiles/publications/haskell2011.pdf>

License:             BSD3
License-file:        LICENSE
Author:              George Giorgidze, Alexander Ulrich, Nils Schweinsberg and Jeroen Weijers
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
                     tests/Main.hs
		     tests/ComprehensionTests.hs
		     tests/DSHComprehensions.hs
		     tests/CombinatorTests.hs
                     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 (VL, TA)
  Default:     False

Library
  Extensions:        CPP
  Build-depends:     base               >= 4.7 && < 5,
                     template-haskell   >= 2.9,
                     containers         >= 0.5,
                     mtl                >= 2.1,
                     bytestring         >= 0.10,
                     text               >= 1.1,
                     HDBC               >= 2.3,
                     HDBC-postgresql    >= 2.3,
                     pretty             >= 1.1,
                     aeson              >= 0.8,
                     kure               >= 2.16,
                     either             >= 4.0,
                     semigroups         >= 0.16,
                     ansi-wl-pprint     >= 0.6,
                     set-monad          >= 0.1,
                     dlist              >= 0.7,

                     algebra-dag        >= 0.1,
                     algebra-sql        >= 0.1
                     
  Hs-source-dirs:    src

  if flag(debugcomp)
    CPP-Options:     -DDEBUGCOMP
  
  if flag(debuggraph)
    CPP-Options:     -DDEBUGGRAPH

  GHC-Options:       -Wall -fno-warn-orphans

  Exposed-modules:   Database.DSH
                     Database.DSH.Compiler

  Other-modules:     Database.DSH.Frontend.Internals
                     Database.DSH.Frontend.Schema
                     Database.DSH.Frontend.Externals
                     Database.DSH.Frontend.TH
                     Database.DSH.Frontend.TupleTypes
                     Database.DSH.Frontend.Funs
                     Database.DSH.Translate.Frontend2CL
                     Database.DSH.Execute.TH
                     Database.DSH.Execute.Sql
                     Database.DSH.Execute.Backend
                     Database.DSH.Common.Nat
                     Database.DSH.Common.Pretty
                     Database.DSH.Common.Type
                     Database.DSH.Common.Lang
                     Database.DSH.Common.QueryPlan
                     Database.DSH.Common.RewriteM
                     Database.DSH.Common.Kure
                     Database.DSH.Export
                     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.Algebra2Query
                     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.Render.JSON
                     Database.DSH.VL.Vector
                     Database.DSH.VL.VectorAlgebra
                     Database.DSH.VL.VectorAlgebra.TA
                     Database.DSH.VL.Vectorize
                     Database.DSH.VL.Primitives

                     Database.DSH.Impossible

                     Database.DSH.Optimizer.Common.Auxiliary
                     Database.DSH.Optimizer.Common.Rewrite

                     Database.DSH.Optimizer.VL.Properties.BottomUp
                     Database.DSH.Optimizer.VL.Properties.Card
                     Database.DSH.Optimizer.VL.Properties.Common
                     Database.DSH.Optimizer.VL.Properties.Const
                     Database.DSH.Optimizer.VL.Properties.Empty
                     Database.DSH.Optimizer.VL.Properties.NonEmpty
                     Database.DSH.Optimizer.VL.Properties.ReqColumns
                     Database.DSH.Optimizer.VL.Properties.TopDown
                     Database.DSH.Optimizer.VL.Properties.Types
                     Database.DSH.Optimizer.VL.Properties.VectorType

                     Database.DSH.Optimizer.TA.Properties.BottomUp
                     Database.DSH.Optimizer.TA.Properties.TopDown
                     Database.DSH.Optimizer.TA.Properties.Types
                     Database.DSH.Optimizer.TA.Properties.Cols
                     Database.DSH.Optimizer.TA.Properties.ICols
                     Database.DSH.Optimizer.TA.Properties.Use
                     Database.DSH.Optimizer.TA.Properties.Auxiliary
                     Database.DSH.Optimizer.TA.Properties.Empty
                     Database.DSH.Optimizer.TA.Properties.Card1
                     Database.DSH.Optimizer.TA.Properties.Keys
                     Database.DSH.Optimizer.TA.Properties.Order
                     Database.DSH.Optimizer.TA.Properties.Const
                     Database.DSH.Optimizer.TA.Rewrite.Basic
                     Database.DSH.Optimizer.TA.Rewrite.Common
                     Database.DSH.Optimizer.TA.OptimizeTA
		     
                     Database.DSH.Optimizer.Common.Rewrite
                     Database.DSH.Optimizer.VL.OptimizeVL
                     Database.DSH.Optimizer.VL.Rewrite.Common
                     Database.DSH.Optimizer.VL.Rewrite.Expressions
                     Database.DSH.Optimizer.VL.Rewrite.PruneEmpty
                     Database.DSH.Optimizer.VL.Rewrite.Redundant
                     Database.DSH.Optimizer.VL.Rewrite.Aggregation
                     Database.DSH.Optimizer.VL.Rewrite.Window
                     Database.DSH.Optimizer.VL.Rewrite.Unused

executable vldot
    Main-is: Database/DSH/Tools/VLDotGen.hs
    GHC-Options:      -Wall -fno-warn-orphans
    hs-source-dirs:   src
    build-depends:    base                >= 4.7 && < 5, 
                      mtl                 >= 2.1, 
                      pretty              >= 1.1, 
                      aeson               >= 0.8, 
                      containers          >= 0.5,
                      template-haskell    >= 2.9, 
                      bytestring          >= 0.10,
                      ansi-wl-pprint      >= 0.6,
                      semigroups          >= 0.16,

                      algebra-dag          >= 0.1,
                      algebra-sql          >= 0.1
    GHC-Options: -Wall -fno-warn-orphans

Test-Suite Flattening_TA
    type:       exitcode-stdio-1.0
    Hs-Source-Dirs : tests
    Main-is:       Main.hs
    Build-depends: base                       >= 4.7 && < 5,
                   QuickCheck                 >= 2.4,
                   containers                 >= 0.5,
                   text                       >= 1.1,
                   HDBC-postgresql            >= 2.3,
                   HDBC                       >= 2.3,
                   test-framework-quickcheck2 >= 0.2,
                   test-framework-hunit       >= 0.3,
                   test-framework             >= 0.6,
                   HUnit                      >= 1.2,

                   DSH                        >= 0.10
    cpp-options:   -DTESTSQL
    GHC-Options: -Wall -fno-warn-orphans
    Extensions: CPP