hasql-transaction 1.1.0.1 → 1.1.1
raw patch · 9 files changed
+97/−108 lines, 9 filesdep ~hasqlPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hasql
API changes (from Hackage documentation)
Files
- conflicts-test/Main.hs +7/−7
- conflicts-test/Main/Statements.hs +2/−2
- conflicts-test/Main/Transactions.hs +1/−1
- hasql-transaction.cabal +64/−80
- library/Hasql/Transaction/Private/SQL.hs +1/−1
- library/Hasql/Transaction/Private/Sessions.hs +12/−7
- library/Hasql/Transaction/Private/Statements.hs +4/−4
- library/Hasql/Transaction/Private/Transaction.hs +3/−3
- library/Hasql/Transaction/Sessions.hs +3/−3
conflicts-test/Main.hs view
@@ -1,12 +1,12 @@ module Main where -import qualified Control.Concurrent.Async as F-import qualified Hasql.Connection as A-import qualified Hasql.Session as B-import qualified Hasql.Transaction as C-import qualified Hasql.Transaction.Sessions as G-import qualified Main.Statements as D-import qualified Main.Transactions as E+import Control.Concurrent.Async qualified as F+import Hasql.Connection qualified as A+import Hasql.Session qualified as B+import Hasql.Transaction qualified as C+import Hasql.Transaction.Sessions qualified as G+import Main.Statements qualified as D+import Main.Transactions qualified as E import Prelude main :: IO ()
conflicts-test/Main/Statements.hs view
@@ -1,8 +1,8 @@ module Main.Statements where import Contravariant.Extras-import qualified Hasql.Decoders as D-import qualified Hasql.Encoders as E+import Hasql.Decoders qualified as D+import Hasql.Encoders qualified as E import Hasql.Statement import Prelude
conflicts-test/Main/Transactions.hs view
@@ -1,7 +1,7 @@ module Main.Transactions where import Hasql.Transaction-import qualified Main.Statements as A+import Main.Statements qualified as A import Prelude createSchema :: Transaction ()
hasql-transaction.cabal view
@@ -1,31 +1,30 @@-name: hasql-transaction-version: 1.1.0.1-category: Hasql, Database, PostgreSQL+cabal-version: 3.0+name: hasql-transaction+version: 1.1.1+category: Hasql, Database, PostgreSQL synopsis: Composable abstraction over retryable transactions for Hasql -homepage: https://github.com/nikita-volkov/hasql-transaction-bug-reports: https://github.com/nikita-volkov/hasql-transaction/issues-author: Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>-copyright: (c) 2015, Nikita Volkov-license: MIT-license-file: LICENSE-build-type: Simple-cabal-version: >=1.10+homepage: https://github.com/nikita-volkov/hasql-transaction+bug-reports: https://github.com/nikita-volkov/hasql-transaction/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2015, Nikita Volkov+license: MIT+license-file: LICENSE extra-source-files: CHANGELOG.md+tested-with: ghc ==9.8.2 || ==8.10.1 source-repository head- type: git+ type: git location: git://github.com/nikita-volkov/hasql-transaction.git -library- hs-source-dirs: library+common base+ default-language: Haskell2010 default-extensions:- NoImplicitPrelude- NoMonomorphismRestriction- Arrows+ ApplicativeDo BangPatterns+ BlockArguments ConstraintKinds DataKinds DefaultSignatures@@ -34,32 +33,51 @@ DeriveFunctor DeriveGeneric DeriveTraversable+ DerivingVia EmptyDataDecls FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving+ ImportQualifiedPost LambdaCase LiberalTypeSynonyms- MagicHash MultiParamTypeClasses MultiWayIf+ NoImplicitPrelude+ NoMonomorphismRestriction OverloadedStrings- ParallelListComp PatternGuards QuasiQuotes RankNTypes RecordWildCards+ RoleAnnotations ScopedTypeVariables StandaloneDeriving- TemplateHaskell+ StrictData TupleSections TypeFamilies TypeOperators- UnboxedTuples - default-language: Haskell2010+common executable+ import: base+ ghc-options:+ -O2+ -threaded+ -with-rtsopts=-N+ -rtsopts+ -funbox-strict-fields++common test+ import: base+ ghc-options:+ -threaded+ -with-rtsopts=-N++library+ import: base+ hs-source-dirs: library exposed-modules: Hasql.Transaction Hasql.Transaction.Sessions@@ -67,72 +85,38 @@ other-modules: Hasql.Transaction.Config Hasql.Transaction.Private.Prelude- Hasql.Transaction.Private.Sessions Hasql.Transaction.Private.SQL+ Hasql.Transaction.Private.Sessions Hasql.Transaction.Private.Statements Hasql.Transaction.Private.Transaction build-depends:- base >=4.12 && <5- , bytestring >=0.10 && <0.13- , bytestring-tree-builder >=0.2.7.8 && <0.3- , contravariant >=1.3 && <2- , contravariant-extras >=0.3 && <0.4- , hasql >=1.6 && <1.7- , mtl >=2.2 && <3- , transformers >=0.5 && <0.7+ base >=4.12 && <5,+ bytestring >=0.10 && <0.13,+ bytestring-tree-builder >=0.2.7.8 && <0.3,+ contravariant >=1.3 && <2,+ contravariant-extras >=0.3 && <0.4,+ hasql >=1.7 && <1.8,+ mtl >=2.2 && <3,+ transformers >=0.5 && <0.7, test-suite conflicts-test- type: exitcode-stdio-1.0- hs-source-dirs: conflicts-test- default-extensions:- NoImplicitPrelude- NoMonomorphismRestriction- Arrows- BangPatterns- ConstraintKinds- DataKinds- DefaultSignatures- DeriveDataTypeable- DeriveFoldable- DeriveFunctor- DeriveGeneric- DeriveTraversable- EmptyDataDecls- FlexibleContexts- FlexibleInstances- FunctionalDependencies- GADTs- GeneralizedNewtypeDeriving- LambdaCase- LiberalTypeSynonyms- MagicHash- MultiParamTypeClasses- MultiWayIf- OverloadedStrings- ParallelListComp- PatternGuards- QuasiQuotes- RankNTypes- RecordWildCards- ScopedTypeVariables- StandaloneDeriving- TemplateHaskell- TupleSections- TypeFamilies- TypeOperators- UnboxedTuples-- default-language: Haskell2010- main-is: Main.hs+ import: test+ type: exitcode-stdio-1.0+ hs-source-dirs: conflicts-test+ main-is: Main.hs other-modules: Main.Statements Main.Transactions - ghc-options: -O2 -threaded -with-rtsopts=-N+ ghc-options:+ -O2+ -threaded+ -with-rtsopts=-N+ build-depends:- async >=2.1 && <3- , contravariant-extras >=0.3 && <0.4- , hasql- , hasql-transaction- , rerebase >=1.11 && <2+ async >=2.1 && <3,+ contravariant-extras >=0.3 && <0.4,+ hasql,+ hasql-transaction,+ rerebase >=1.11 && <2,
library/Hasql/Transaction/Private/SQL.hs view
@@ -1,6 +1,6 @@ module Hasql.Transaction.Private.SQL where -import qualified ByteString.TreeBuilder as D+import ByteString.TreeBuilder qualified as D import Hasql.Transaction.Config import Hasql.Transaction.Private.Prelude
library/Hasql/Transaction/Private/Sessions.hs view
@@ -3,7 +3,7 @@ import Hasql.Session import Hasql.Transaction.Config import Hasql.Transaction.Private.Prelude-import qualified Hasql.Transaction.Private.Statements as Statements+import Hasql.Transaction.Private.Statements qualified as Statements {- We may want to@@ -37,10 +37,15 @@ then statement () (Statements.commitTransaction preparable) else statement () (Statements.abortTransaction preparable) -handleTransactionError :: QueryError -> Session a -> Session a+handleTransactionError :: SessionError -> Session a -> Session a handleTransactionError error onTransactionError = case error of- QueryError _ _ (ResultError (ServerError code _ _ _ _)) -> case code of- "40001" -> onTransactionError- "40P01" -> onTransactionError- _ -> throwError error- error -> throwError error+ QueryError _ _ clientError -> onCommandError clientError+ PipelineError clientError -> onCommandError clientError+ where+ onCommandError = \case+ ResultError (ServerError code _ _ _ _) ->+ case code of+ "40001" -> onTransactionError+ "40P01" -> onTransactionError+ _ -> throwError error+ _ -> throwError error
library/Hasql/Transaction/Private/Statements.hs view
@@ -1,11 +1,11 @@ module Hasql.Transaction.Private.Statements where -import qualified Hasql.Decoders as C-import qualified Hasql.Encoders as B-import qualified Hasql.Statement as A+import Hasql.Decoders qualified as C+import Hasql.Encoders qualified as B+import Hasql.Statement qualified as A import Hasql.Transaction.Config import Hasql.Transaction.Private.Prelude-import qualified Hasql.Transaction.Private.SQL as D+import Hasql.Transaction.Private.SQL qualified as D -- * Transactions
library/Hasql/Transaction/Private/Transaction.hs view
@@ -1,10 +1,10 @@ module Hasql.Transaction.Private.Transaction where -import qualified Hasql.Session as B-import qualified Hasql.Statement as A+import Hasql.Session qualified as B+import Hasql.Statement qualified as A import Hasql.Transaction.Config import Hasql.Transaction.Private.Prelude-import qualified Hasql.Transaction.Private.Sessions as D+import Hasql.Transaction.Private.Sessions qualified as D -- | -- A composable abstraction over the retryable transactions.
library/Hasql/Transaction/Sessions.hs view
@@ -9,9 +9,9 @@ where import Data.Bool-import qualified Hasql.Session as B-import qualified Hasql.Transaction.Config as C-import qualified Hasql.Transaction.Private.Transaction as A+import Hasql.Session qualified as B+import Hasql.Transaction.Config qualified as C+import Hasql.Transaction.Private.Transaction qualified as A -- | -- Execute the transaction using the provided isolation level and mode.