hasql-cursor-transaction 0.6.3 → 0.6.3.1
raw patch · 6 files changed
+67/−97 lines, 6 filesdep ~hasqldep ~hasql-transactionPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: hasql, hasql-transaction
API changes (from Hackage documentation)
- Hasql.CursorTransaction.Transactions: cursorTransaction :: (forall s. CursorTransaction s result) -> Transaction result
+ Hasql.CursorTransaction.Transactions: cursorTransaction :: () => forall s. () => CursorTransaction s result -> Transaction result
Files
- hasql-cursor-transaction.cabal +26/−55
- library/Hasql/CursorTransaction/Private/Queries.hs +0/−35
- library/Hasql/CursorTransaction/Private/Specs.hs +1/−1
- library/Hasql/CursorTransaction/Private/Statements.hs +35/−0
- library/Hasql/CursorTransaction/Private/Transactions.hs +4/−4
- library/Hasql/CursorTransaction/Sessions.hs +1/−2
hasql-cursor-transaction.cabal view
@@ -1,49 +1,24 @@-name:- hasql-cursor-transaction-version:- 0.6.3-category:- Hasql, Database, PostgreSQL, Streaming-synopsis:- An abstraction for simultaneous fetching from multiple PostgreSQL cursors-homepage:- https://github.com/nikita-volkov/hasql-cursor-transaction -bug-reports:- https://github.com/nikita-volkov/hasql-cursor-transaction/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---source-repository head- type:- git- location:- git://github.com/nikita-volkov/hasql-cursor-transaction.git-+name: hasql-cursor-transaction+version: 0.6.3.1+category: Hasql, Database, PostgreSQL, Streaming+synopsis: An abstraction for simultaneous fetching from multiple PostgreSQL cursors+homepage: https://github.com/nikita-volkov/hasql-cursor-transaction+bug-reports: https://github.com/nikita-volkov/hasql-cursor-transaction/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 library- hs-source-dirs:- library- 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+ hs-source-dirs: library+ 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 other-modules: Hasql.CursorTransaction.Private.Prelude- Hasql.CursorTransaction.Private.Queries+ Hasql.CursorTransaction.Private.Statements Hasql.CursorTransaction.Private.Specs Hasql.CursorTransaction.Private.Transactions Hasql.CursorTransaction.Private.CursorTransaction@@ -52,16 +27,12 @@ Hasql.CursorTransaction.Sessions Hasql.CursorTransaction build-depends:- -- database:- hasql >= 0.19 && < 0.20 || >= 1 && < 2,- hasql-transaction >= 0.5 && < 0.6,- -- data:- bytestring-tree-builder == 0.2.*,- bytestring >= 0.10 && < 0.11,- -- control:- contravariant >= 1.3 && < 2,- contravariant-extras >= 0.3.3.1 && < 0.4,- transformers >= 0.4 && < 0.6,- -- general:- base-prelude >= 1 && < 2,- base >= 4.6 && < 5+ base >=4.6 && <5,+ base-prelude >=1 && <2,+ bytestring >=0.10 && <0.11,+ bytestring-tree-builder ==0.2.*,+ contravariant >=1.3 && <2,+ contravariant-extras >=0.3.3.1 && <0.4,+ hasql >=1.3 && <1.4,+ hasql-transaction >=0.7 && <0.8,+ transformers >=0.4 && <0.6
− library/Hasql/CursorTransaction/Private/Queries.hs
@@ -1,35 +0,0 @@-module Hasql.CursorTransaction.Private.Queries-where--import Hasql.CursorTransaction.Private.Prelude-import qualified Hasql.Query as A-import qualified Hasql.Encoders as B-import qualified Hasql.Decoders as C-import qualified Hasql.CursorTransaction.Private.Specs as F-import qualified ByteString.TreeBuilder as D---declareCursor :: ByteString -> ByteString -> B.Params a -> A.Query a ()-declareCursor name sql encoder =- A.statement sql' encoder C.unit False- where- sql' =- D.toByteString $- "DECLARE " <> D.byteString name <> " NO SCROLL CURSOR FOR " <> D.byteString sql--closeCursor :: ByteString -> A.Query () ()-closeCursor name =- A.statement sql B.unit C.unit True- where- sql =- "CLOSE " <> name--fetchFromCursor :: ByteString -> F.BatchSize -> C.Result result -> A.Query () result-fetchFromCursor name (F.BatchSize batchSize) decoder =- A.statement sql encoder decoder True- where- sql =- D.toByteString $- "FETCH FORWARD " <> D.asciiIntegral batchSize <> " FROM " <> D.byteString name- encoder =- B.unit
library/Hasql/CursorTransaction/Private/Specs.hs view
@@ -40,7 +40,7 @@ -- A parameters encoder immediately supplied with parameters. newtype EncodedParams = EncodedParams (Supplied A.Params)- deriving (Monoid)+ deriving (Semigroup, Monoid) -- | -- Pack the params encoder and params into EncodedParams.
+ library/Hasql/CursorTransaction/Private/Statements.hs view
@@ -0,0 +1,35 @@+module Hasql.CursorTransaction.Private.Statements+where++import Hasql.CursorTransaction.Private.Prelude+import Hasql.Statement+import qualified Hasql.Encoders as B+import qualified Hasql.Decoders as C+import qualified Hasql.CursorTransaction.Private.Specs as F+import qualified ByteString.TreeBuilder as D+++declareCursor :: ByteString -> ByteString -> B.Params a -> Statement a ()+declareCursor name sql encoder =+ Statement sql' encoder C.unit False+ where+ sql' =+ D.toByteString $+ "DECLARE " <> D.byteString name <> " NO SCROLL CURSOR FOR " <> D.byteString sql++closeCursor :: ByteString -> Statement () ()+closeCursor name =+ Statement sql B.unit C.unit True+ where+ sql =+ "CLOSE " <> name++fetchFromCursor :: ByteString -> F.BatchSize -> C.Result result -> Statement () result+fetchFromCursor name (F.BatchSize batchSize) decoder =+ Statement sql encoder decoder True+ where+ sql =+ D.toByteString $+ "FETCH FORWARD " <> D.asciiIntegral batchSize <> " FROM " <> D.byteString name+ encoder =+ B.unit
library/Hasql/CursorTransaction/Private/Transactions.hs view
@@ -2,7 +2,7 @@ where import Hasql.CursorTransaction.Private.Prelude-import qualified Hasql.CursorTransaction.Private.Queries as A+import qualified Hasql.CursorTransaction.Private.Statements as A import qualified Hasql.CursorTransaction.Private.Specs as B import qualified Hasql.Transaction as C import qualified Hasql.Decoders as E@@ -11,12 +11,12 @@ declareCursor :: ByteString -> ByteString -> F.Params params -> params -> C.Transaction () declareCursor cursorName template paramsEncoder params =- C.query params (A.declareCursor cursorName template paramsEncoder)+ C.statement params (A.declareCursor cursorName template paramsEncoder) closeCursor :: ByteString -> C.Transaction () closeCursor cursorName =- C.query () (A.closeCursor cursorName)+ C.statement () (A.closeCursor cursorName) fetchFromCursor :: ByteString -> B.BatchSize -> E.Result result -> C.Transaction result fetchFromCursor cursorName batchSize decoder =- C.query () (A.fetchFromCursor cursorName batchSize decoder)+ C.statement () (A.fetchFromCursor cursorName batchSize decoder)
library/Hasql/CursorTransaction/Sessions.hs view
@@ -6,7 +6,6 @@ import Hasql.CursorTransaction.Private.Prelude import qualified Hasql.CursorTransaction.Private.CursorTransaction as A-import qualified Hasql.Transaction as B import qualified Hasql.Transaction.Sessions as D import qualified Hasql.Session as C @@ -16,4 +15,4 @@ -- During the execution it establishes a Read transaction with the ReadCommitted isolation level. cursorTransaction :: (forall s. A.CursorTransaction s result) -> C.Session result cursorTransaction cursorTransaction =- D.transaction B.ReadCommitted B.Read (A.run cursorTransaction)+ D.transaction D.ReadCommitted D.Read (A.run cursorTransaction)