packages feed

beam-postgres 0.3.1.0 → 0.3.2.0

raw patch · 12 files changed

+62/−20 lines, 12 filesdep +taggeddep +uuid-typesdep −uuiddep ~basedep ~beam-core

Dependencies added: tagged, uuid-types

Dependencies removed: uuid

Dependency ranges changed: base, beam-core

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+# 0.3.2.0++Add `Semigroup` instances to prepare for GHC 8.4 and Stackage nightly+ # 0.3.1.0  Add `runBeamPostgres` and `runBeamPostgresDebug` functions.
Database/Beam/Postgres.hs view
@@ -48,6 +48,8 @@    , module Database.Beam.Postgres.PgSpecific +  , runBeamPostgres, runBeamPostgresDebug+     -- ** Postgres extension support   , PgExtensionEntity, IsPgExtension(..)   , pgCreateExtension, pgDropExtension
Database/Beam/Postgres/Conduit.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE LambdaCase #-}  -- | More efficient query execution functions for @beam-postgres@. These@@ -24,14 +25,22 @@ import qualified Data.Conduit as C import           Data.Int (Int64) import           Data.Maybe (fromMaybe)-import           Data.Monoid ((<>))+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif +#if MIN_VERSION_conduit(1,3,0)+#define CONDUIT_TRANSFORMER C.ConduitT+#else+#define CONDUIT_TRANSFORMER C.ConduitM+#endif+ -- * @SELECT@  -- | Run a PostgreSQL @SELECT@ statement in any 'MonadIO'. runSelect :: ( MonadIO m,  MonadBaseControl IO m, FromBackendRow Postgres a )           => Pg.Connection -> SqlSelect PgSelectSyntax a-          -> (C.ConduitT () a m () -> m b) -> m b+          -> (CONDUIT_TRANSFORMER () a m () -> m b) -> m b runSelect conn (SqlSelect (PgSelectSyntax syntax)) withSrc =   runQueryReturning conn syntax withSrc @@ -50,7 +59,7 @@ runInsertReturning :: ( MonadIO m,  MonadBaseControl IO m, FromBackendRow Postgres a)                    => Pg.Connection                    -> PgInsertReturning a-                   -> (C.ConduitT () a m () -> m b)+                   -> (CONDUIT_TRANSFORMER () a m () -> m b)                    -> m b runInsertReturning _ PgInsertReturningEmpty withSrc = withSrc (pure ()) runInsertReturning conn (PgInsertReturning i) withSrc =@@ -71,7 +80,7 @@ runUpdateReturning :: ( MonadIO m, MonadBaseControl IO m, FromBackendRow Postgres a)                    => Pg.Connection                    -> PgUpdateReturning a-                   -> (C.ConduitT () a m () -> m b)+                   -> (CONDUIT_TRANSFORMER () a m () -> m b)                    -> m b runUpdateReturning _ PgUpdateReturningEmpty withSrc = withSrc (pure ()) runUpdateReturning conn (PgUpdateReturning u) withSrc =@@ -91,7 +100,7 @@ -- 'MonadIO' and get a 'C.Source' of the deleted rows. runDeleteReturning :: ( MonadIO m, MonadBaseControl IO m, FromBackendRow Postgres a )                    => Pg.Connection -> PgDeleteReturning a-                   -> (C.ConduitT () a m () -> m b) -> m b+                   -> (CONDUIT_TRANSFORMER () a m () -> m b) -> m b runDeleteReturning conn (PgDeleteReturning d) withSrc =   runQueryReturning conn d withSrc @@ -108,7 +117,7 @@ runQueryReturning   :: ( MonadIO m, MonadBaseControl IO m, Functor m, FromBackendRow Postgres r )   => Pg.Connection -> PgSyntax-  -> (C.ConduitT () r m () -> m b)+  -> (CONDUIT_TRANSFORMER () r m () -> m b)   -> m b runQueryReturning conn x withSrc = do   success <- liftIO $ do
Database/Beam/Postgres/Connection.hs view
@@ -9,6 +9,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-}  module Database.Beam.Postgres.Connection   ( PgRowReadError(..), PgError(..)@@ -55,11 +56,13 @@ import           Data.ByteString (ByteString) import           Data.ByteString.Builder (toLazyByteString, byteString) import qualified Data.ByteString.Lazy as BL-import           Data.Monoid import           Data.Proxy import           Data.String import qualified Data.Text as T import           Data.Text.Encoding (decodeUtf8)+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif  import           Foreign.C.Types 
Database/Beam/Postgres/Extensions.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE CPP #-}  -- | Postgres extensions are run-time loadable plugins that can extend Postgres -- functionality. Extensions are part of the database schema.@@ -23,9 +24,11 @@ import           Data.Aeson import qualified Data.HashSet as HS import           Data.Hashable (Hashable)-import           Data.Monoid import           Data.Proxy import           Data.Text (Text)+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif  -- *** Embedding extensions in databases 
Database/Beam/Postgres/Full.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TupleSections #-}+{-# LANGUAGE CPP #-}  -- | Module providing (almost) full support for Postgres query and data -- manipulation statements. These functions shadow the functions in@@ -51,8 +52,10 @@  import           Control.Monad.Free.Church -import           Data.Monoid ((<>)) import qualified Data.Text as T+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif  -- * @SELECT@ 
Database/Beam/Postgres/Migrate.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -fno-warn-orphans -fno-warn-type-defaults #-}  -- | Migrations support for beam-postgres. See "Database.Beam.Migrate" for more@@ -56,14 +57,16 @@ import           Data.ByteString (ByteString) import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy.Char8 as BCL-import           Data.Monoid import           Data.String import           Data.Int import qualified Data.Text as T import qualified Data.Text.Encoding as TE import qualified Data.Vector as V-import           Data.UUID (UUID)+import           Data.UUID.Types (UUID) import           Data.Typeable+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif  -- | Top-level migration backend for use by @beam-migrate@ tools migrationBackend :: Tool.BeamMigrationBackend PgCommandSyntax Postgres Pg.Connection Pg@@ -176,7 +179,7 @@       | Pg.typoid Pg.uuid        == oid ->           Just $ HsDataType (hsVarFrom "uuid" "Database.Beam.Postgres")                             (HsType (tyConNamed "UUID")-                                    (importSome "Data.UUID" [importTyNamed "UUID"]))+                                    (importSome "Data.UUID.Types" [importTyNamed "UUID"]))                             (pgDataTypeSerialized pgUuidType)       | Pg.typoid Pg.money       == oid ->           Just $ HsDataType (hsVarFrom "money" "Database.Beam.Postgres")
Database/Beam/Postgres/PgCrypto.hs view
@@ -14,7 +14,7 @@ import Data.Text (Text) import Data.ByteString (ByteString) import Data.Vector (Vector)-import Data.UUID (UUID)+import Data.UUID.Types (UUID)  type PgExpr ctxt s = QGenExpr ctxt PgExpressionSyntax s 
Database/Beam/Postgres/PgSpecific.hs view
@@ -8,6 +8,7 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE PolyKinds #-}+{-# LANGUAGE CPP #-}  -- | Postgres-specific types, functions, and operators module Database.Beam.Postgres.PgSpecific@@ -97,7 +98,6 @@ import qualified Data.ByteString.Lazy as BL import           Data.Foldable import           Data.Hashable-import           Data.Monoid import           Data.Proxy import           Data.Scientific (Scientific, formatScientific, FPFormat(Fixed)) import           Data.String@@ -105,6 +105,9 @@ import           Data.Time (LocalTime) import           Data.Type.Bool import qualified Data.Vector as V+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif  import qualified Database.PostgreSQL.Simple.FromField as Pg import qualified Database.PostgreSQL.Simple.ToField as Pg
Database/Beam/Postgres/Syntax.hs view
@@ -108,16 +108,19 @@ import           Data.Hashable import           Data.Int import           Data.Maybe-import           Data.Monoid import           Data.Scientific (Scientific) import           Data.String (IsString(..), fromString)+import           Data.Tagged import qualified Data.Text as T import qualified Data.Text.Encoding as TE import qualified Data.Text.Lazy as TL import           Data.Time (LocalTime, UTCTime, ZonedTime, TimeOfDay, NominalDiffTime, Day)-import           Data.UUID (UUID)+import           Data.UUID.Types (UUID) import qualified Data.Vector as V import           Data.Word+#if !MIN_VERSION_base(4, 11, 0)+import           Data.Semigroup+#endif  import qualified Database.PostgreSQL.Simple.ToField as Pg import qualified Database.PostgreSQL.Simple.TypeInfo.Static as Pg@@ -174,6 +177,9 @@ newtype PgSyntax   = PgSyntax { buildPgSyntax :: PgSyntaxM () } +instance Semigroup PgSyntax where+  (<>) = mappend+ instance Monoid PgSyntax where   mempty = PgSyntax (pure ())   mappend a b = PgSyntax (buildPgSyntax a >> buildPgSyntax b)@@ -620,7 +626,7 @@ instance IsCustomSqlSyntax PgExpressionSyntax where   newtype CustomSqlSyntax PgExpressionSyntax =     PgCustomExpressionSyntax { fromPgCustomExpression :: PgSyntax }-    deriving Monoid+    deriving (Monoid, Semigroup)   customExprSyntax = PgExpressionSyntax . fromPgCustomExpression   renderSyntax = PgCustomExpressionSyntax . pgParens . fromPgExpression @@ -1372,3 +1378,8 @@ PG_HAS_EQUALITY_CHECK(V.Vector a) PG_HAS_EQUALITY_CHECK(CI T.Text) PG_HAS_EQUALITY_CHECK(CI TL.Text)++instance HasSqlEqualityCheck PgExpressionSyntax a =>+  HasSqlEqualityCheck PgExpressionSyntax (Tagged t a)+instance HasSqlQuantifiedEqualityCheck PgExpressionSyntax a =>+  HasSqlQuantifiedEqualityCheck PgExpressionSyntax (Tagged t a)
Database/Beam/Postgres/Types.hs view
@@ -29,7 +29,7 @@ import           Data.Text (Text) import qualified Data.Text.Lazy as TL import           Data.Time (UTCTime, Day, TimeOfDay, LocalTime, ZonedTime(..))-import           Data.UUID (UUID)+import           Data.UUID.Types (UUID) import           Data.Vector (Vector) import           Data.Word 
beam-postgres.cabal view
@@ -1,5 +1,5 @@ name:                 beam-postgres-version:              0.3.1.0+version:              0.3.2.0 synopsis:             Connection layer between beam and postgres description:          Beam driver for <https://www.postgresql.org/ PostgreSQL>, an advanced open-source RDBMS homepage:             http://tathougies.github.io/beam/user-guide/backends/beam-postgres@@ -44,12 +44,13 @@                       mtl                  >=2.1  && <2.3,                       conduit              >=1.2  && <1.4,                       aeson                >=0.11 && <1.3,-                      uuid                 >=1.2  && <1.4,+                      uuid-types           >=1.0  && <1.1,                       case-insensitive     >=1.2  && <1.3,                       scientific           >=0.3  && <0.4,                       vector               >=0.11 && <0.13,                       network-uri          >=2.6  && <2.7,                       unordered-containers >= 0.2 && <0.3,+                      tagged               >=0.8  && <0.9,                        haskell-src-exts     >=1.18 && <1.21   default-language:   Haskell2010