DSH 0.8.2.1 → 0.8.2.2
raw patch · 9 files changed
+50/−25 lines, 9 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- DSH.cabal +20/−25
- src/Database/DSH/CSV.hs +3/−0
- src/Database/DSH/Compile.hs +4/−0
- src/Database/DSH/Compiler.hs +4/−0
- src/Database/DSH/Externals.hs +6/−0
- src/Database/DSH/Impossible.hs +2/−0
- src/Database/DSH/Internals.hs +5/−0
- src/Database/DSH/Interpreter.hs +4/−0
- src/Database/DSH/TH.hs +2/−0
DSH.cabal view
@@ -1,18 +1,17 @@ Name: DSH-Version: 0.8.2.1+Version: 0.8.2.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- 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.+ 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@@ -24,18 +23,22 @@ 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.+ . + Note that this package is flagged experimental and therefore is 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. .- This is a highly experimental release supporting our work-in-progress paper on- "Algebraic Data Types for Language-Integrated Queries".+ The latest release implements new features described in our work-in-+ progress paper entitled as "Algebraic Data Types for Language-Integrated+ Queries" [3]. . 1. <http://db.inf.uni-tuebingen.de/files/giorgidze/ifl2010.pdf>+ .+ 2. <http://db.inf.uni-tuebingen.de/files/giorgidze/haskell2011.pdf>+ .+ 3. <http://db.inf.uni-tuebingen.de/files/giorgidze/adtq.pdf> License: BSD3 License-file: LICENSE@@ -55,14 +58,6 @@ Cabal-version: >= 1.4 Library- Extensions: TemplateHaskell,- ScopedTypeVariables,- FlexibleContexts,- FlexibleInstances,- MultiParamTypeClasses,- TypeFamilies,- GADTs- Build-depends: base >= 4.5 && < 5, containers >= 0.4, array >= 0.4,
src/Database/DSH/CSV.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE GADTs #-}+{-# LANGUAGE ScopedTypeVariables #-}+ module Database.DSH.CSV (csvImport) where import Database.DSH.Internals
src/Database/DSH/Compile.hs view
@@ -1,3 +1,7 @@+{-# LANGUAGE GADTs #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+ module Database.DSH.Compile where import Database.DSH.Internals
src/Database/DSH/Compiler.hs view
@@ -1,3 +1,7 @@+{-# LANGUAGE GADTs #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+ -- | DSH compiler module exposes the function fromQ that can be used to -- execute DSH programs on a database. It transform the DSH program into -- FerryCore which is then translated into SQL (through a table algebra). The SQL
src/Database/DSH/Externals.hs view
@@ -1,3 +1,9 @@+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+ module Database.DSH.Externals where import Database.DSH.Internals
src/Database/DSH/Impossible.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE TemplateHaskell #-}+ module Database.DSH.Impossible (impossible) where import qualified Language.Haskell.TH as TH
src/Database/DSH/Internals.hs view
@@ -1,3 +1,8 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE GADTs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeFamilies #-}+ module Database.DSH.Internals where import Data.Text (Text)
src/Database/DSH/Interpreter.hs view
@@ -1,3 +1,7 @@+{-# LANGUAGE GADTs #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TemplateHaskell #-}+ -- | This module provides the reference implementation of DSH by interpreting -- the embedded representation.
src/Database/DSH/TH.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE TemplateHaskell #-}+ module Database.DSH.TH ( deriveDSH , deriveQA , deriveTupleRangeQA