packages feed

hasql 0.19.9 → 0.19.10

raw patch · 4 files changed

+112/−2 lines, 4 filesdep ~basedep ~postgresql-binaryPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, postgresql-binary

API changes (from Hackage documentation)

Files

hasql.cabal view
@@ -1,7 +1,7 @@ name:   hasql version:-  0.19.9+  0.19.10 category:   Hasql, Database, PostgreSQL synopsis:@@ -74,7 +74,7 @@     -- parsing:     attoparsec >= 0.10 && < 0.14,     -- database:-    postgresql-binary >= 0.8 && < 0.9,+    postgresql-binary >= 0.9 && < 0.10,     postgresql-libpq == 0.9.*,     -- builders:     bytestring-tree-builder >= 0.2.5 && < 0.3,@@ -134,6 +134,30 @@     QuickCheck >= 2.8.1 && < 2.9,     -- general:     data-default-class,+    -- base,+    rebase+++test-suite threads-test+  type:+    exitcode-stdio-1.0+  hs-source-dirs:+    threads-test+  main-is:+    Main.hs+  other-modules:+    Main.Queries+  ghc-options:+    -O2+    -threaded+    "-with-rtsopts=-N"+  default-extensions:+    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+  default-language:+    Haskell2010+  build-depends:+    -- database:+    hasql,     -- base,     rebase 
tasty/Main.hs view
@@ -22,6 +22,27 @@   localOption (NumThreads 1) $   testGroup "All tests"   [+    testCase "Empty array" $+    let+      io =+        do+          x <- Connection.with (Session.run session)+          assertEqual (show x) (Right (Right [])) x+        where+          session =+            Session.query () query+            where+              query =+                Query.statement sql encoder decoder True+                where+                  sql =+                    "select array[]::int8[]"+                  encoder =+                    Encoders.unit+                  decoder =+                    Decoders.singleRow (Decoders.value (Decoders.array (Decoders.arrayDimension replicateM (Decoders.arrayValue Decoders.int8))))+      in io+    ,     testCase "Failing prepared statements" $     let       io =
+ threads-test/Main.hs view
@@ -0,0 +1,45 @@+module Main where++import Rebase.Prelude+import qualified Hasql.Connection+import qualified Hasql.Query+import qualified Hasql.Encoders+import qualified Hasql.Decoders+import qualified Hasql.Session+import qualified Main.Queries as Queries+++main =+  acquire >>= use+  where+    acquire =+      (,) <$> acquire <*> acquire+      where+        acquire =+          join $+          fmap (either (fail . show) return) $+          Hasql.Connection.acquire connectionSettings+          where+            connectionSettings =+              Hasql.Connection.settings "localhost" 5432 "postgres" "" "postgres"+    use (connection1, connection2) =+      do+        beginVar <- newEmptyMVar+        finishVar <- newEmptyMVar+        forkIO $ do+          traceM "1: in"+          putMVar beginVar ()+          session connection1 (Hasql.Session.query 0.2 Queries.selectSleep)+          traceM "1: out"+          void (tryPutMVar finishVar False)+        forkIO $ do+          takeMVar beginVar+          traceM "2: in"+          session connection2 (Hasql.Session.query 0.1 Queries.selectSleep)+          traceM "2: out"+          void (tryPutMVar finishVar True)+        bool exitFailure exitSuccess . traceShowId =<< takeMVar finishVar+      where+        session connection session =+          Hasql.Session.run session connection >>=+          either (fail . show) return
+ threads-test/Main/Queries.hs view
@@ -0,0 +1,20 @@+module Main.Queries where++import Rebase.Prelude+import Hasql.Query+import qualified Hasql.Encoders as E+import qualified Hasql.Decoders as D+++selectSleep :: Query Double ()+selectSleep =+  statement sql encoder decoder True+  where+    sql =+      "select pg_sleep($1)"+    encoder =+      E.value E.float8+    decoder =+      D.unit++