packages feed

hasql-cursor-query 0.4.4.3 → 0.4.5

raw patch · 16 files changed

+165/−189 lines, 16 filesdep −QuickCheckdep −basedep −quickcheck-instancesdep ~bytestringdep ~hasqldep ~hasql-transactionsetup-changedPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies removed: QuickCheck, base, quickcheck-instances, tasty-quickcheck

Dependency ranges changed: bytestring, hasql, hasql-transaction

API changes (from Hackage documentation)

- Hasql.CursorQuery: data BatchSize
+ Hasql.CursorQuery: data () => BatchSize

Files

− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
hasql-cursor-query.cabal view
@@ -1,96 +1,114 @@-name:-  hasql-cursor-query-version:-  0.4.4.3-category:-  Hasql, Database, PostgreSQL, Streaming-synopsis:-  A declarative abstraction over PostgreSQL Cursor-homepage:-  https://github.com/nikita-volkov/hasql-cursor-query -bug-reports:-  https://github.com/nikita-volkov/hasql-cursor-query/issues -author:-  Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer:-  Nikita Volkov <nikita.y.volkov@mail.ru>-copyright:-  (c) 2016, Nikita Volkov-license:-  MIT-license-file:-  LICENSE-build-type:-  Simple-cabal-version:-  >=1.10-+cabal-version: 3.0+name: hasql-cursor-query+version: 0.4.5+category: Hasql, Database, PostgreSQL, Streaming+synopsis: A declarative abstraction over PostgreSQL Cursor+homepage: https://github.com/nikita-volkov/hasql-cursor-query+bug-reports: https://github.com/nikita-volkov/hasql-cursor-query/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2016, Nikita Volkov+license: MIT+license-file: LICENSE  source-repository head-  type:-    git-  location:-    git://github.com/nikita-volkov/hasql-cursor-query.git+  type: git+  location: git://github.com/nikita-volkov/hasql-cursor-query.git +common base+  default-language: Haskell2010+  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+    ParallelListComp+    PatternGuards+    QuasiQuotes+    RankNTypes+    RecordWildCards+    ScopedTypeVariables+    StandaloneDeriving+    TemplateHaskell+    TupleSections+    TypeFamilies+    TypeOperators+    UnboxedTuples -library-  hs-source-dirs:-    library+common executable+  import: base   ghc-options:-  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+    -O2+    -threaded+    "-with-rtsopts=-N -I0 -qg"++common test+  import: base+  ghc-options:+    -threaded+    "-with-rtsopts=-N -I0 -qg"++library+  import: base+  hs-source-dirs: library   other-modules:-    Hasql.CursorQuery.Private.Prelude     Hasql.CursorQuery.Private.CursorQuery-    Hasql.CursorQuery.Private.Decoders-    Hasql.CursorQuery.Private.Transactions     Hasql.CursorQuery.Private.CursorTransactions+    Hasql.CursorQuery.Private.Decoders+    Hasql.CursorQuery.Private.Prelude     Hasql.CursorQuery.Private.Sessions+    Hasql.CursorQuery.Private.Transactions+   exposed-modules:-    Hasql.CursorQuery.Transactions+    Hasql.CursorQuery     Hasql.CursorQuery.CursorTransactions     Hasql.CursorQuery.Sessions-    Hasql.CursorQuery-  build-depends:-    -- database:-    hasql >= 1.4 && < 1.5,-    hasql-transaction >= 0.7 && < 0.8,-    hasql-cursor-transaction >= 0.6 && < 0.7,-    -- data:-    bytestring >= 0.10 && < 0.11,-    -- control:-    foldl > 1 && < 2,-    profunctors == 5.*,-    contravariant >= 1.3 && < 2,-    -- general:-    base-prelude >= 1 && < 2,-    base >= 4.6 && < 5+    Hasql.CursorQuery.Transactions +  build-depends:+    base-prelude >=1 && <2,+    bytestring >=0.10 && <0.14,+    contravariant >=1.3 && <2,+    foldl >1 && <2,+    hasql >=1.6 && <1.7,+    hasql-cursor-transaction >=0.6 && <0.7,+    hasql-transaction >=1.1 && <1.2,+    profunctors >=5 && <6,  test-suite tasty-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    tasty-  main-is:-    Main.hs+  import: test+  type: exitcode-stdio-1.0+  hs-source-dirs: tasty+  main-is: Main.hs   other-modules:     Main.CursorQueries-    Main.Statements     Main.IO-  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+    Main.Statements+   build-depends:-    foldl >= 1.2 && < 2,+    foldl >=1.2 && <2,     hasql,     hasql-cursor-query,-    QuickCheck >=2.8.1 && <3,-    quickcheck-instances >=0.3.11 && <0.4,-    rebase < 2,+    rebase <2,     tasty >=0.12 && <2,     tasty-hunit >=0.9 && <0.11,-    tasty-quickcheck >=0.9 && <0.11
library/Hasql/CursorQuery.hs view
@@ -1,19 +1,17 @@ -- | -- A DSL for declaring queries. module Hasql.CursorQuery-(-  A.CursorQuery,-  A.cursorQuery,-  A.ReducingDecoder,-  A.reducingDecoder,-  B.BatchSize,-  B.batchSize_10,-  B.batchSize_100,-  B.batchSize_1000,-  B.batchSize_10000,-)+  ( A.CursorQuery,+    A.cursorQuery,+    A.ReducingDecoder,+    A.reducingDecoder,+    B.BatchSize,+    B.batchSize_10,+    B.batchSize_100,+    B.batchSize_1000,+    B.batchSize_10000,+  ) where  import qualified Hasql.CursorQuery.Private.CursorQuery as A import qualified Hasql.CursorTransaction as B-
library/Hasql/CursorQuery/CursorTransactions.hs view
@@ -1,7 +1,6 @@ module Hasql.CursorQuery.CursorTransactions-(-  cursorQuery,-)+  ( cursorQuery,+  ) where  import Hasql.CursorQuery.Private.CursorTransactions
library/Hasql/CursorQuery/Private/CursorQuery.hs view
@@ -1,24 +1,22 @@-module Hasql.CursorQuery.Private.CursorQuery-where+module Hasql.CursorQuery.Private.CursorQuery where -import Hasql.CursorQuery.Private.Prelude-import qualified Hasql.Encoders as A-import qualified Hasql.Decoders as B import qualified Control.Foldl as D+import Hasql.CursorQuery.Private.Prelude import qualified Hasql.CursorTransaction as H-+import qualified Hasql.Decoders as B+import qualified Hasql.Encoders as A  -- | -- A specification of a streaming query.--- +-- -- Provides an abstraction over Postgres Cursor, -- which allows to process result sets of any size in constant memory.--- +-- -- Essentially it is a parametric query specification extended with a reduction strategy and a batch size, -- where reduction strategy determines how to fold the rows into the final result, -- and batch size determines how many rows to fetch during each roundtrip to the database.-data CursorQuery params result =-  CursorQuery !ByteString !(A.Params params) !(ReducingDecoder result) !H.BatchSize+data CursorQuery params result+  = CursorQuery !ByteString !(A.Params params) !(ReducingDecoder result) !H.BatchSize  instance Profunctor CursorQuery where   dimap fn1 fn2 (CursorQuery template encoder decoder batchSize) =@@ -35,13 +33,12 @@ cursorQuery =   CursorQuery - -- | -- A specification of how to decode and reduce multiple rows.--- +-- -- Composable with the Applicative interface.-data ReducingDecoder reduction =-  forall row. ReducingDecoder !(B.Row row) !(D.Fold row reduction)+data ReducingDecoder reduction+  = forall row. ReducingDecoder !(B.Row row) !(D.Fold row reduction)  instance Functor ReducingDecoder where   fmap fn (ReducingDecoder rowDecoder rowsFold) =@@ -66,4 +63,3 @@ reducingDecoder :: B.Row row -> D.Fold row reduction -> ReducingDecoder reduction reducingDecoder =   ReducingDecoder-
library/Hasql/CursorQuery/Private/CursorTransactions.hs view
@@ -1,21 +1,18 @@-module Hasql.CursorQuery.Private.CursorTransactions-where+module Hasql.CursorQuery.Private.CursorTransactions where -import Hasql.CursorQuery.Private.Prelude+import qualified Control.Foldl as D import qualified Hasql.CursorQuery.Private.CursorQuery as B import qualified Hasql.CursorQuery.Private.Decoders as I-import qualified Hasql.Decoders as E-import qualified Hasql.Encoders as F+import Hasql.CursorQuery.Private.Prelude import qualified Hasql.CursorTransaction as G-import qualified Control.Foldl as D-+import qualified Hasql.Decoders as E  -- | -- Fetch and fold the data from cursor until it dries out. fetchAndFoldCursor :: G.Cursor s -> G.BatchSize -> E.Row row -> D.Fold row result -> G.CursorTransaction s result fetchAndFoldCursor cursor batchSize rowDecoder (D.Fold progress enter exit) =-  fmap exit $-  fetchAndFoldMore enter+  fmap exit+    $ fetchAndFoldMore enter   where     fetchAndFoldMore batch =       do
library/Hasql/CursorQuery/Private/Decoders.hs view
@@ -1,10 +1,8 @@-module Hasql.CursorQuery.Private.Decoders-where+module Hasql.CursorQuery.Private.Decoders where +import qualified Control.Foldl as B import Hasql.CursorQuery.Private.Prelude import qualified Hasql.Decoders as A-import qualified Control.Foldl as B-  fold :: B.Fold a b -> A.Row a -> A.Result b fold (B.Fold progress enter exit) rowDecoder =
library/Hasql/CursorQuery/Private/Prelude.hs view
@@ -1,23 +1,9 @@ module Hasql.CursorQuery.Private.Prelude-( -  module Exports,-)+  ( module Exports,+  ) where ---- base-prelude---------------------------import BasePrelude as Exports hiding (assert, left, right, isLeft, isRight, error)---- profunctors---------------------------import Data.Profunctor.Unsafe as Exports---- contravariant---------------------------import Data.Functor.Contravariant as Exports-import Data.Functor.Contravariant.Divisible as Exports---- bytestring--------------------------+import BasePrelude as Exports hiding (assert, error, isLeft, isRight, left, right) import Data.ByteString as Exports (ByteString)+import Data.Functor.Contravariant.Divisible as Exports+import Data.Profunctor.Unsafe as Exports
library/Hasql/CursorQuery/Private/Sessions.hs view
@@ -1,16 +1,13 @@-module Hasql.CursorQuery.Private.Sessions-where+module Hasql.CursorQuery.Private.Sessions where -import Hasql.CursorQuery.Private.Prelude import qualified Hasql.CursorQuery.Private.CursorQuery as B import qualified Hasql.CursorQuery.Private.CursorTransactions as C import qualified Hasql.CursorTransaction.Sessions as A import qualified Hasql.Session as D - -- | -- Executes CursorQuery in Session provided the parameters.--- +-- -- During the execution it establishes a Read transaction with the ReadCommitted isolation level. cursorQuery :: params -> B.CursorQuery params result -> D.Session result cursorQuery params cursorQuery =
library/Hasql/CursorQuery/Private/Transactions.hs view
@@ -1,12 +1,9 @@-module Hasql.CursorQuery.Private.Transactions-where+module Hasql.CursorQuery.Private.Transactions where -import Hasql.CursorQuery.Private.Prelude import qualified Hasql.CursorQuery.Private.CursorQuery as B import qualified Hasql.CursorQuery.Private.CursorTransactions as C-import qualified Hasql.Transaction as A import qualified Hasql.CursorTransaction.Transactions as D-+import qualified Hasql.Transaction as A  -- | -- Executes CursorQuery in Transaction provided the parameters.
library/Hasql/CursorQuery/Sessions.hs view
@@ -1,7 +1,6 @@ module Hasql.CursorQuery.Sessions-(-  cursorQuery,-)+  ( cursorQuery,+  ) where  import Hasql.CursorQuery.Private.Sessions
library/Hasql/CursorQuery/Transactions.hs view
@@ -1,7 +1,6 @@ module Hasql.CursorQuery.Transactions-(-  cursorQuery,-)+  ( cursorQuery,+  ) where  import Hasql.CursorQuery.Private.Transactions
tasty/Main.hs view
@@ -1,29 +1,27 @@ module Main where -import Rebase.Prelude-import Test.Tasty-import Test.Tasty.Runners-import Test.Tasty.HUnit-import qualified Hasql.Session as A import qualified Hasql.CursorQuery.Sessions as C+import qualified Hasql.Session as A import qualified Main.CursorQueries as D-import qualified Main.Statements as E import qualified Main.IO as F-+import qualified Main.Statements as E+import Rebase.Prelude+import Test.Tasty+import Test.Tasty.HUnit+import Test.Tasty.Runners  main :: IO () main =   defaultMain $-  localOption (NumThreads 1) $-  testGroup "All tests"-  [-    testCase "Amount" $-    do-      (count1, count2) <- F.session ((,) <$> A.statement () E.countPGType <*> C.cursorQuery () D.countPGType)-      assertEqual (show (count1, count2)) count1 count2-    ,-    testCase "Equality" $-    do-      (result1, result2) <- F.session ((,) <$> A.statement () E.slectOIDAndTypeName <*> C.cursorQuery () D.slectOIDAndTypeName)-      assertEqual (show (result1, result2)) result1 result2-  ]+    localOption (NumThreads 1) $+      testGroup+        "All tests"+        [ testCase "Amount" $+            do+              (count1, count2) <- F.session ((,) <$> A.statement () E.countPGType <*> C.cursorQuery () D.countPGType)+              assertEqual (show (count1, count2)) count1 count2,+          testCase "Equality" $+            do+              (result1, result2) <- F.session ((,) <$> A.statement () E.slectOIDAndTypeName <*> C.cursorQuery () D.slectOIDAndTypeName)+              assertEqual (show (result1, result2)) result1 result2+        ]
tasty/Main/CursorQueries.hs view
@@ -1,11 +1,10 @@ module Main.CursorQueries where -import Rebase.Prelude+import qualified Control.Foldl as C import Hasql.CursorQuery-import qualified Hasql.Encoders as A import qualified Hasql.Decoders as B-import qualified Control.Foldl as C-+import qualified Hasql.Encoders as A+import Rebase.Prelude  countPGType :: CursorQuery () Int countPGType =@@ -38,4 +37,3 @@           (,) <$> (B.column . B.nonNullable) B.int8 <*> (B.column . B.nonNullable) B.text         fold =           C.list-
tasty/Main/IO.hs view
@@ -1,14 +1,13 @@ module Main.IO where -import Rebase.Prelude-import qualified Hasql.Session as A import qualified Hasql.Connection as B-+import qualified Hasql.Session as A+import Rebase.Prelude  session :: A.Session a -> IO a session session =-  withConnection (A.run session) >>=-  either (fail . show) (either (fail . show) return)+  withConnection (A.run session)+    >>= either (fail . show) (either (fail . show) return)   where     withConnection :: (B.Connection -> IO a) -> IO (Either B.ConnectionError a)     withConnection handler =@@ -23,7 +22,7 @@                 host = "localhost"                 port = 5432                 user = "postgres"-                password = ""+                password = "postgres"                 database = "postgres"         use connection =           lift $ handler connection
tasty/Main/Statements.hs view
@@ -1,10 +1,9 @@ module Main.Statements where -import Rebase.Prelude-import Hasql.Statement-import qualified Hasql.Encoders as A import qualified Hasql.Decoders as B-+import qualified Hasql.Encoders as A+import Hasql.Statement+import Rebase.Prelude  countPGType :: Statement () Int countPGType =@@ -16,7 +15,7 @@       A.noParams     decoder =       (B.singleRow . B.column . B.nonNullable . fmap fromIntegral) B.int8-      + slectOIDAndTypeName :: Statement () [(Int64, Text)] slectOIDAndTypeName =   Statement sql encoder decoder True