packages feed

groundhog 0.8.0.1 → 0.9.0

raw patch · 4 files changed

+29/−6 lines, 4 filesdep +semigroupsdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: semigroups

Dependency ranges changed: base

API changes (from Hackage documentation)

- Database.Groundhog.Core: instance (GHC.Classes.Eq dbType, GHC.Classes.Eq str) => GHC.Classes.Eq (Database.Groundhog.Core.ConstructorDef' str dbType)
- Database.Groundhog.Core: instance (GHC.Classes.Eq dbType, GHC.Classes.Eq str) => GHC.Classes.Eq (Database.Groundhog.Core.EmbeddedDef' str dbType)
- Database.Groundhog.Core: instance (GHC.Classes.Eq dbType, GHC.Classes.Eq str) => GHC.Classes.Eq (Database.Groundhog.Core.EntityDef' str dbType)
- Database.Groundhog.Core: instance (GHC.Classes.Eq field, GHC.Classes.Eq str) => GHC.Classes.Eq (Database.Groundhog.Core.UniqueDef' str field)
- Database.Groundhog.Core: instance (GHC.Show.Show dbType, GHC.Show.Show str) => GHC.Show.Show (Database.Groundhog.Core.ConstructorDef' str dbType)
- Database.Groundhog.Core: instance (GHC.Show.Show dbType, GHC.Show.Show str) => GHC.Show.Show (Database.Groundhog.Core.EmbeddedDef' str dbType)
- Database.Groundhog.Core: instance (GHC.Show.Show dbType, GHC.Show.Show str) => GHC.Show.Show (Database.Groundhog.Core.EntityDef' str dbType)
- Database.Groundhog.Core: instance (GHC.Show.Show field, GHC.Show.Show str) => GHC.Show.Show (Database.Groundhog.Core.UniqueDef' str field)
- Database.Groundhog.Core: instance db' ~ db => Database.Groundhog.Core.HasSelectOptions (Database.Groundhog.Core.Cond db r) db' r
- Database.Groundhog.Core: instance db' ~ db => Database.Groundhog.Core.HasSelectOptions (Database.Groundhog.Core.SelectOptions db r hasLimit hasOffset hasOrder hasDistinct) db' r
- Database.Groundhog.Expression: instance b ~ Database.Groundhog.Core.HFalse => Database.Groundhog.Expression.TypeEq x y b
- Database.Groundhog.Expression: instance k ~ Database.Groundhog.Core.Key v u => Database.Groundhog.Expression.NormalizeKey Database.Groundhog.Core.HFalse v u k
- Database.Groundhog.Expression: instance k ~ v => Database.Groundhog.Expression.NormalizeKey Database.Groundhog.Core.HTrue v u k
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HFalse, Database.Groundhog.Core.Key v (Database.Groundhog.Core.Unique u)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (u (Database.Groundhog.Core.UniqueMarker v)) r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HFalse, Database.Groundhog.Core.Key v Database.Groundhog.Core.BackendSpecific) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.AutoKeyField v c) r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HFalse, a) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.Expr db r' a) r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HFalse, a) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.Field v c a) r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HFalse, a) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.SubField db v c a) r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HTrue, GHC.Types.Bool) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HFalse (Database.Groundhog.Core.Cond db r') r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HTrue, GHC.Types.Bool) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.Cond db r') r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HTrue, a) => Database.Groundhog.Expression.NormalizeValue a r
- Database.Groundhog.Expression: instance r ~ (Database.Groundhog.Core.HTrue, t) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue t r
- Database.Groundhog.Instances: instance a ~ GHC.Types.Bool => Database.Groundhog.Core.Projection (Database.Groundhog.Core.Cond db r) a
+ Database.Groundhog.Core: instance (GHC.Classes.Eq str, GHC.Classes.Eq dbType) => GHC.Classes.Eq (Database.Groundhog.Core.ConstructorDef' str dbType)
+ Database.Groundhog.Core: instance (GHC.Classes.Eq str, GHC.Classes.Eq dbType) => GHC.Classes.Eq (Database.Groundhog.Core.EmbeddedDef' str dbType)
+ Database.Groundhog.Core: instance (GHC.Classes.Eq str, GHC.Classes.Eq dbType) => GHC.Classes.Eq (Database.Groundhog.Core.EntityDef' str dbType)
+ Database.Groundhog.Core: instance (GHC.Classes.Eq str, GHC.Classes.Eq field) => GHC.Classes.Eq (Database.Groundhog.Core.UniqueDef' str field)
+ Database.Groundhog.Core: instance (GHC.Show.Show str, GHC.Show.Show dbType) => GHC.Show.Show (Database.Groundhog.Core.ConstructorDef' str dbType)
+ Database.Groundhog.Core: instance (GHC.Show.Show str, GHC.Show.Show dbType) => GHC.Show.Show (Database.Groundhog.Core.EmbeddedDef' str dbType)
+ Database.Groundhog.Core: instance (GHC.Show.Show str, GHC.Show.Show dbType) => GHC.Show.Show (Database.Groundhog.Core.EntityDef' str dbType)
+ Database.Groundhog.Core: instance (GHC.Show.Show str, GHC.Show.Show field) => GHC.Show.Show (Database.Groundhog.Core.UniqueDef' str field)
+ Database.Groundhog.Core: instance (db' ~ db) => Database.Groundhog.Core.HasSelectOptions (Database.Groundhog.Core.Cond db r) db' r
+ Database.Groundhog.Core: instance (db' ~ db) => Database.Groundhog.Core.HasSelectOptions (Database.Groundhog.Core.SelectOptions db r hasLimit hasOffset hasOrder hasDistinct) db' r
+ Database.Groundhog.Expression: instance (b ~ Database.Groundhog.Core.HFalse) => Database.Groundhog.Expression.TypeEq x y b
+ Database.Groundhog.Expression: instance (k ~ Database.Groundhog.Core.Key v u) => Database.Groundhog.Expression.NormalizeKey Database.Groundhog.Core.HFalse v u k
+ Database.Groundhog.Expression: instance (k ~ v) => Database.Groundhog.Expression.NormalizeKey Database.Groundhog.Core.HTrue v u k
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HFalse, Database.Groundhog.Core.Key v (Database.Groundhog.Core.Unique u))) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (u (Database.Groundhog.Core.UniqueMarker v)) r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HFalse, Database.Groundhog.Core.Key v Database.Groundhog.Core.BackendSpecific)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.AutoKeyField v c) r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HFalse, a)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.Expr db r' a) r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HFalse, a)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.Field v c a) r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HFalse, a)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.SubField db v c a) r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HTrue, GHC.Types.Bool)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HFalse (Database.Groundhog.Core.Cond db r') r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HTrue, GHC.Types.Bool)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue (Database.Groundhog.Core.Cond db r') r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HTrue, a)) => Database.Groundhog.Expression.NormalizeValue a r
+ Database.Groundhog.Expression: instance (r ~ (Database.Groundhog.Core.HTrue, t)) => Database.Groundhog.Expression.Normalize Database.Groundhog.Core.HTrue t r
+ Database.Groundhog.Generic.Sql: instance GHC.Base.Semigroup (Database.Groundhog.Generic.Sql.RenderS db r)
+ Database.Groundhog.Generic.Sql: instance GHC.Base.Semigroup Database.Groundhog.Core.Utf8
+ Database.Groundhog.Instances: instance (a ~ GHC.Types.Bool) => Database.Groundhog.Core.Projection (Database.Groundhog.Core.Cond db r) a
- Database.Groundhog.Generic.Migration: MigrationPack :: (DbTypePrimitive -> DbTypePrimitive -> Bool) -> ((Maybe String, Reference) -> (Maybe String, Reference) -> Bool) -> (UniqueDefInfo -> UniqueDefInfo -> Bool) -> (String -> String -> Bool) -> (QualifiedName -> [(String, String)] -> Action conn (Bool, [AlterDB])) -> (QualifiedName -> [(String, String)] -> Action conn [(Bool, [AlterDB])]) -> (EntityDef -> ConstructorDef -> Action conn (Bool, SingleMigration)) -> (String -> String) -> String -> String -> Int -> ([UniqueDefInfo] -> [Reference] -> ([String], [AlterTable])) -> (DbTypePrimitive -> String) -> (Column -> String) -> (AlterDB -> SingleMigration) -> ReferenceActionType -> ReferenceActionType -> MigrationPack conn
+ Database.Groundhog.Generic.Migration: MigrationPack :: DbTypePrimitive -> DbTypePrimitive -> Bool -> (Maybe String, Reference) -> (Maybe String, Reference) -> Bool -> UniqueDefInfo -> UniqueDefInfo -> Bool -> String -> String -> Bool -> QualifiedName -> [(String, String)] -> Action conn (Bool, [AlterDB]) -> QualifiedName -> [(String, String)] -> Action conn [(Bool, [AlterDB])] -> EntityDef -> ConstructorDef -> Action conn (Bool, SingleMigration) -> String -> String -> String -> String -> Int -> [UniqueDefInfo] -> [Reference] -> ([String], [AlterTable]) -> DbTypePrimitive -> String -> Column -> String -> AlterDB -> SingleMigration -> ReferenceActionType -> ReferenceActionType -> MigrationPack conn
- Database.Groundhog.Generic.Sql: (<>) :: Monoid m => m -> m -> m
+ Database.Groundhog.Generic.Sql: (<>) :: Semigroup a => a -> a -> a
- Database.Groundhog.Generic.Sql: RenderConfig :: (Utf8 -> Utf8) -> RenderConfig
+ Database.Groundhog.Generic.Sql: RenderConfig :: Utf8 -> Utf8 -> RenderConfig
- Database.Groundhog.Generic.Sql: RenderS :: Utf8 -> ([PersistValue] -> [PersistValue]) -> RenderS db r
+ Database.Groundhog.Generic.Sql: RenderS :: Utf8 -> [PersistValue] -> [PersistValue] -> RenderS db r
- Database.Groundhog.Generic.Sql: class (Monoid a, IsString a) => StringLike a
+ Database.Groundhog.Generic.Sql: class (Semigroup a, Monoid a, IsString a) => StringLike a

Files

Database/Groundhog/Generic/PersistBackendHelpers.hs view
@@ -32,7 +32,7 @@ import Control.Monad (liftM) import Data.Either (rights) import Data.Maybe (catMaybes, fromJust, mapMaybe)-import Data.Monoid+import Data.Monoid hiding ((<>))  get :: forall conn v . (PersistBackendConn conn, PersistEntity v, PrimitivePersistField (Key v BackendSpecific))     => RenderConfig -> (Utf8 -> [PersistValue] -> Action conn (RowStream [PersistValue])) -> Key v BackendSpecific -> Action conn (Maybe v)
Database/Groundhog/Generic/Sql.hs view
@@ -44,12 +44,17 @@ import Database.Groundhog.Instances () import qualified Blaze.ByteString.Builder.Char.Utf8 as B import Data.Maybe (mapMaybe, maybeToList)-import Data.Monoid+#if !(MIN_VERSION_base(4,8,0))+import Data.Monoid hiding ((<>))+#endif import Data.String  import Database.Groundhog.Expression -class (Monoid a, IsString a) => StringLike a where+-- rely on semigroups package providing Semigroup prior to base-4.9+import Data.Semigroup as Sem++class (Sem.Semigroup a, Monoid a, IsString a) => StringLike a where   fromChar :: Char -> a  data RenderS db r = RenderS {@@ -57,9 +62,14 @@   , getValues :: [PersistValue] -> [PersistValue] } +instance Sem.Semigroup Utf8 where+  (Utf8 a) <> (Utf8 b) = Utf8 (a <> b)+ instance Monoid Utf8 where   mempty = Utf8 mempty-  mappend (Utf8 a) (Utf8 b) = Utf8 (mappend a b)+#if !(MIN_VERSION_base(4,11,0))+  mappend = (<>)+#endif  instance IsString Utf8 where   fromString = Utf8 . B.fromString@@ -135,9 +145,14 @@ renderPersistValue (PersistCustom s as) = RenderS s (as++) renderPersistValue a = RenderS (fromChar '?') (a:) +instance Sem.Semigroup (RenderS db r) where+  (RenderS f1 g1) <> (RenderS f2 g2) = RenderS (f1 <> f2) (g1 . g2)+ instance Monoid (RenderS db r) where   mempty = RenderS mempty id-  (RenderS f1 g1) `mappend` (RenderS f2 g2) = RenderS (f1 `mappend` f2) (g1 . g2)+#if !(MIN_VERSION_base(4,11,0))+  mappend = (<>)+#endif  instance IsString (RenderS db r) where   fromString s = RenderS (fromString s) id
changelog view
@@ -1,3 +1,6 @@+0.9.0+* Support for GHC 8.4+ 0.8.0.1 * New typeclass to allow transaction rollback through ExceptT 
groundhog.cabal view
@@ -1,5 +1,5 @@ name:            groundhog-version:         0.8.0.1+version:         0.9.0 license:         BSD3 license-file:    LICENSE author:          Boris Lykah <lykahb@gmail.com>@@ -33,6 +33,11 @@                    , resourcet                >= 1.1.2                    , safe-exceptions                    , transformers-compat      >= 0.3++    -- See https://prime.haskell.org/wiki/Libraries/Proposals/SemigroupMonoid#Writingcompatiblecode+    if !impl(ghc >= 8.0)+      build-depends: semigroups+     exposed-modules: Database.Groundhog                      Database.Groundhog.Core                      Database.Groundhog.Expression