packages feed

persistable-record 0.6.0.4 → 0.6.0.5

raw patch · 4 files changed

+62/−39 lines, 4 filesdep +th-bang-compatdep +th-constraint-compatPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: th-bang-compat, th-constraint-compat

API changes (from Hackage documentation)

- Database.Record.FromSql: instance (Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull a, Database.Record.FromSql.FromSql q a, Database.Record.Persistable.PersistableType q) => Database.Record.FromSql.FromSql q (GHC.Base.Maybe a)
- Database.Record.Persistable: instance Database.Record.Persistable.PersistableWidth a => Database.Record.Persistable.PersistableWidth (GHC.Base.Maybe a)
- Database.Record.ToSql: instance (Database.Record.Persistable.PersistableType q, Database.Record.ToSql.ToSql q a) => Database.Record.ToSql.ToSql q (GHC.Base.Maybe a)
+ Database.Record: class FromSql q a
+ Database.Record: class HasColumnConstraint c a
+ Database.Record: class HasKeyConstraint c a
+ Database.Record: class Eq q => PersistableType q
+ Database.Record: class PersistableWidth a
+ Database.Record: class PersistableWidth a => ToSql q a
+ Database.Record: columnConstraint :: HasColumnConstraint c a => ColumnConstraint c a
+ Database.Record: data ColumnConstraint c r
+ Database.Record: data KeyConstraint c r
+ Database.Record: data NotNull
+ Database.Record: data PersistableSqlType q
+ Database.Record: data Primary
+ Database.Record: data RecordFromSql q a
+ Database.Record: data RecordToSql q a
+ Database.Record: data Unique
+ Database.Record: deriveComposite :: ColumnConstraint c r -> KeyConstraint c r
+ Database.Record: derivedCompositePrimary :: HasColumnConstraint Primary r => PrimaryConstraint r
+ Database.Record: derivedNotNullColumnConstraint :: HasColumnConstraint Primary r => NotNullColumnConstraint r
+ Database.Record: derivedUniqueColumnConstraint :: HasColumnConstraint Primary r => UniqueColumnConstraint r
+ Database.Record: derivedUniqueConstraint :: HasKeyConstraint Primary r => UniqueConstraint r
+ Database.Record: derivedWidth :: PersistableWidth a => (PersistableRecordWidth a, Int)
+ Database.Record: fromRecord :: ToSql q a => a -> [q]
+ Database.Record: keyConstraint :: HasKeyConstraint c a => KeyConstraint c a
+ Database.Record: notNullColumn :: PrimaryColumnConstraint r -> NotNullColumnConstraint r
+ Database.Record: persistableType :: PersistableType q => PersistableSqlType q
+ Database.Record: persistableWidth :: (PersistableWidth a, Generic a, GFieldWidthList (Rep a)) => PersistableRecordWidth a
+ Database.Record: putEmpty :: () -> ToSqlM q ()
+ Database.Record: putRecord :: ToSql q a => a -> ToSqlM q ()
+ Database.Record: recordFromSql :: (FromSql q a, Generic a, GFromSql q (Rep a)) => RecordFromSql q a
+ Database.Record: recordToSql :: (ToSql q a, Generic a, GToSql q (Rep a)) => RecordToSql q a
+ Database.Record: sqlNullValue :: PersistableType q => q
+ Database.Record: takeRecord :: FromSql q a => [q] -> (a, [q])
+ Database.Record: toRecord :: FromSql q a => [q] -> a
+ Database.Record: type NotNullColumnConstraint = ColumnConstraint NotNull
+ Database.Record: type PersistableRecordWidth a = ProductConst (Sum Int) a
+ Database.Record: type PrimaryColumnConstraint = ColumnConstraint Primary
+ Database.Record: type PrimaryConstraint = KeyConstraint Primary
+ Database.Record: type ToSqlM q a = Writer (DList q) a
+ Database.Record: type UniqueColumnConstraint = ColumnConstraint Unique
+ Database.Record: type UniqueConstraint = KeyConstraint Unique
+ Database.Record: unique :: PrimaryConstraint r -> UniqueConstraint r
+ Database.Record: uniqueColumn :: PrimaryColumnConstraint r -> UniqueColumnConstraint r
+ Database.Record: updateValuesByPrimary :: (HasKeyConstraint Primary ra, ToSql q ra) => ra -> [q]
+ Database.Record: updateValuesByUnique :: ToSql q ra => KeyConstraint Unique ra -> ra -> [q]
+ Database.Record: valueRecordFromSql :: (q -> a) -> RecordFromSql q a
+ Database.Record: valueRecordToSql :: (a -> q) -> RecordToSql q a
+ Database.Record.FromSql: instance (Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull a, Database.Record.FromSql.FromSql q a, Database.Record.Persistable.PersistableType q) => Database.Record.FromSql.FromSql q (GHC.Maybe.Maybe a)
+ Database.Record.Persistable: instance Database.Record.Persistable.PersistableWidth a => Database.Record.Persistable.PersistableWidth (GHC.Maybe.Maybe a)
+ Database.Record.ToSql: instance (Database.Record.Persistable.PersistableType q, Database.Record.ToSql.ToSql q a) => Database.Record.ToSql.ToSql q (GHC.Maybe.Maybe a)

Files

ChangeLog.md view
@@ -1,5 +1,13 @@ <!-- -*- Markdown -*- --> +## 0.6.0.5++- apply compat interface packages of TH.++## 0.6.0.4++- update documentation.+ ## 0.6.0.3  - fix example of NameConfig customization.
persistable-record.cabal view
@@ -1,5 +1,5 @@ name:                persistable-record-version:             0.6.0.4+version:             0.6.0.5 synopsis:            Binding between SQL database values and haskell records. description:         This package contiains types to represent table constraints and                      interfaces to bind between SQL database values and Haskell records.@@ -8,11 +8,13 @@ license-file:        LICENSE author:              Kei Hibino maintainer:          ex8k.hibino@gmail.com-copyright:           Copyright (c) 2013-2017 Kei Hibino+copyright:           Copyright (c) 2013-2020 Kei Hibino category:            Database build-type:          Simple cabal-version:       >=1.10-tested-with:           GHC == 8.4.1, GHC == 8.4.2, GHC == 8.4.3+tested-with:           GHC == 8.8.1, GHC == 8.8.2+                     , GHC == 8.6.1, GHC == 8.6.2, GHC == 8.6.3, GHC == 8.6.4, GHC == 8.6.5+                     , GHC == 8.4.1, GHC == 8.4.2, GHC == 8.4.3, GHC == 8.4.4                      , GHC == 8.2.1, GHC == 8.2.2                      , GHC == 8.0.1, GHC == 8.0.2                      , GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3@@ -23,47 +25,57 @@  library   exposed-modules:-                        Database.Record.FromSql-                        Database.Record.ToSql-                        Database.Record.Persistable-                        Database.Record.TupleInstances-                        Database.Record.Instances-                        Database.Record.KeyConstraint-                        Database.Record-                        Database.Record.TH+                       Database.Record.FromSql+                       Database.Record.ToSql+                       Database.Record.Persistable+                       Database.Record.TupleInstances+                       Database.Record.Instances+                       Database.Record.KeyConstraint+                       Database.Record+                       Database.Record.TH    other-modules:-                        Database.Record.InternalTH+                       Database.Record.InternalTH -  build-depends:          base <5-                        , template-haskell-                        , th-data-compat-                        , product-isomorphic >= 0.0.3-                        , array-                        , containers-                        , transformers-                        , dlist-                        , names-th+  build-depends:         base <5+                       , template-haskell+                       , th-data-compat+                       , th-constraint-compat+                       , th-bang-compat+                       , product-isomorphic >= 0.0.3+                       , array+                       , containers+                       , transformers+                       , dlist+                       , names-th   if impl(ghc == 7.4.*)-    build-depends:        ghc-prim == 0.2.*+    build-depends:       ghc-prim == 0.2.* -  hs-source-dirs:       src-  ghc-options:          -Wall-  default-language:     Haskell2010+  hs-source-dirs:      src+  ghc-options:         -Wall+  if impl(ghc >= 8)+    ghc-options:         -Wcompat+  if impl(ghc >= 8) && impl(ghc < 8.8)+    ghc-options:         -Wnoncanonical-monadfail-instances +  default-language:    Haskell2010+ test-suite nested-  build-depends:          base <5-                        , quickcheck-simple-                        , persistable-record+  build-depends:         base <5+                       , quickcheck-simple+                       , persistable-record   if impl(ghc == 7.4.*)-    build-depends:        ghc-prim == 0.2.*+    build-depends:       ghc-prim == 0.2.* -  type:                 exitcode-stdio-1.0-  main-is:              nestedEq.hs-  other-modules:        Model-  hs-source-dirs:       test-  ghc-options:          -Wall-  default-language:     Haskell2010+  type:                exitcode-stdio-1.0+  main-is:             nestedEq.hs+  other-modules:       Model+  hs-source-dirs:      test+  ghc-options:         -Wall+  if impl(ghc >= 8)+    ghc-options:         -Wcompat++  default-language:    Haskell2010  source-repository head   type:       git
src/Database/Record/InternalTH.hs view
@@ -12,7 +12,8 @@ import Data.Int (Int32, Int64) import Language.Haskell.TH   (Q, mkName, Name, tupleTypeName,-   TypeQ, varT, classP, Dec, instanceD, )+   TypeQ, varT, Dec, instanceD, )+import Language.Haskell.TH.Compat.Constraint (classP) import Data.Functor.ProductIsomorphic.TH (reifyRecordType)  import Database.Record.Persistable (PersistableWidth)
src/Database/Record/TH.hs view
@@ -55,9 +55,11 @@    toTypeCon, toDataCon, ) import Language.Haskell.TH.Lib.Extra (integralE, simpleValD, reportWarning) import Language.Haskell.TH.Compat.Data (dataD')+import Language.Haskell.TH.Compat.Bang+  (varBangType, bangType, bang,+   noSourceUnpackedness, sourceStrict) import Language.Haskell.TH-  (Q, nameBase, Name, Dec, TypeQ, conT, ExpQ, listE, sigE,-   recC, cxt, varStrictType, strictType, isStrict)+  (Q, nameBase, Name, Dec, TypeQ, conT, ExpQ, listE, sigE, recC, cxt)  import Control.Arrow ((&&&)) @@ -184,7 +186,7 @@                  -> Q [Dec]            -- ^ The data type record definition defineRecordType typeName' columns derives = do   let typeName = conName typeName'-      fld (n, tq) = varStrictType (varName n) (strictType isStrict tq)+      fld (n, tq) = varBangType (varName n) (bangType (bang noSourceUnpackedness sourceStrict) tq)   derives1 <- if (''Generic `notElem` derives)               then do reportWarning "HRR needs Generic instance, please add ''Generic manually."                       return $ ''Generic : derives