packages feed

hasql-th 0.1.0.1 → 0.2

raw patch · 6 files changed

+10/−92 lines, 6 filesdep −attoparsecdep −hasqldep −hasql-transactionPVP ok

version bump matches the API change (PVP)

Dependencies removed: attoparsec, hasql, hasql-transaction

API changes (from Hackage documentation)

- Hasql.TH: readFileAsTransaction :: String -> Q Exp
+ Hasql.TH: readFileAsSQL :: String -> Q Exp

Files

hasql-th.cabal view
@@ -1,7 +1,7 @@ name:   hasql-th version:-  0.1.0.1+  0.2 category:   Hasql, Database, PostgreSQL, Template Haskell synopsis:@@ -43,20 +43,12 @@     Haskell2010   other-modules:     Hasql.TH.Prelude-    Hasql.TH.Queries-    Hasql.TH.Transactions-    Hasql.TH.Parsers     Hasql.TH.Renderers   exposed-modules:     Hasql.TH   build-depends:-    -- database:-    hasql >= 0.15 && < 0.16,-    hasql-transaction >= 0.3 && < 0.4,     -- template-haskell:     template-haskell >= 2.8 && < 3,-    -- parsers:-    attoparsec >= 0.10 && < 0.14,     -- data:     bytestring >= 0.10 && < 0.11,     text >= 1 && < 2,
library/Hasql/TH.hs view
@@ -2,35 +2,24 @@  import Hasql.TH.Prelude import Language.Haskell.TH-import qualified Hasql.TH.Parsers as Parsers import qualified Hasql.TH.Renderers as Renderers-import qualified Data.Text.IO+import qualified Data.ByteString   -- | -- Read an SQL-file, containing multiple statements,--- and produce a transaction expression.+-- and produce an expression of type `ByteString`. --  -- Allows to store plain SQL in external files and read it at compile time. --  -- E.g., -- --- >migration1 :: Transaction ()+-- >migration1 :: Hasql.Session.Session () -- >migration1 =--- >  $(Hasql.TH.readFileAsTransaction "sql/migration-1.sql")+-- >  Hasql.Session.sql $(Hasql.TH.readFileAsSQL "sql/migration-1.sql") -- --- Note that so far this function uses a very simple parsing algorithm--- to extract individual statements from the file.--- The algorithm simply splits the contents by the semicolon.--- So make sure that you only apply it to SQL,--- which only uses the semicolon for statement-separation.-readFileAsTransaction :: String -> Q Exp-readFileAsTransaction path =-  do-    contents <--      runIO $ Data.Text.IO.readFile path-    statements <- -      either (fail . showString ("Parsing failure: ")) return $-      Parsers.run Parsers.statements contents-    return $-      Renderers.statementsTransactionExp statements+readFileAsSQL :: String -> Q Exp+readFileAsSQL path =+  fmap Renderers.byteStringExp $+  runIO $ Data.ByteString.readFile path+
− library/Hasql/TH/Parsers.hs
@@ -1,23 +0,0 @@-module Hasql.TH.Parsers where--import Hasql.TH.Prelude-import Data.Attoparsec.Text-import qualified Data.Text.Encoding---run :: Parser a -> Text -> Either String a-run parser input =-  parseOnly parser input--statements :: Parser [ByteString]-statements =-  sepBy' statement separator-  where-    separator =-      char ';' *> skipSpace--statement :: Parser ByteString-statement =-  fmap Data.Text.Encoding.encodeUtf8 $-  takeWhile1 (/= ';')-
− library/Hasql/TH/Queries.hs
@@ -1,14 +0,0 @@-module Hasql.TH.Queries where--import Hasql.TH.Prelude-import Hasql.Query-import qualified Hasql.Encoders as Encoders-import qualified Hasql.Decoders as Decoders---statement :: ByteString -> Query () ()-statement sql =-  Query sql Encoders.unit Decoders.unit False---
library/Hasql/TH/Renderers.hs view
@@ -2,18 +2,8 @@  import Hasql.TH.Prelude import Language.Haskell.TH-import qualified Hasql.Transaction as Transaction-import qualified Hasql.TH.Transactions as Transactions import qualified Data.ByteString as ByteString --statementsTransactionExp :: [ByteString] -> Exp-statementsTransactionExp x =-  sequenceExp_ (map statementTransactionExp x)--statementTransactionExp :: ByteString -> Exp-statementTransactionExp x =-  AppE (VarE 'Transactions.statement) (byteStringExp x)  byteStringExp :: ByteString -> Exp byteStringExp x =
− library/Hasql/TH/Transactions.hs
@@ -1,16 +0,0 @@-module Hasql.TH.Transactions where--import Hasql.TH.Prelude-import Hasql.Transaction-import qualified Hasql.TH.Queries as Queries-import qualified Data.ByteString---statement :: ByteString -> Transaction ()-statement sql =-  query () (Queries.statement sql)--statements :: ByteString -> Transaction ()-statements =-  traverse_ statement .-  Data.ByteString.split (fromIntegral (ord ';'))