persistable-record 0.1.0.1 → 0.2.0.0
raw patch · 2 files changed
+22/−16 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Database.Record.FromSql: instance (FromSql q a, FromSql q b) => FromSql q (a, b)
- Database.Record.FromSql: instance (HasColumnConstraint NotNull a, FromSql q a, PersistableType q) => FromSql q (Maybe a)
- Database.Record.FromSql: instance Applicative (RecordFromSql q)
- Database.Record.FromSql: instance FromSql q ()
- Database.Record.FromSql: instance Functor (RecordFromSql q)
- Database.Record.FromSql: instance Monad (RecordFromSql q)
- Database.Record.Instances: instance HasColumnConstraint NotNull Bool
- Database.Record.Instances: instance HasColumnConstraint NotNull Char
- Database.Record.Instances: instance HasColumnConstraint NotNull Int16
- Database.Record.Instances: instance HasColumnConstraint NotNull Int32
- Database.Record.Instances: instance HasColumnConstraint NotNull Int64
- Database.Record.Instances: instance HasColumnConstraint NotNull Int8
- Database.Record.Instances: instance HasColumnConstraint NotNull String
- Database.Record.Instances: instance PersistableWidth Bool
- Database.Record.Instances: instance PersistableWidth Char
- Database.Record.Instances: instance PersistableWidth Int16
- Database.Record.Instances: instance PersistableWidth Int32
- Database.Record.Instances: instance PersistableWidth Int64
- Database.Record.Instances: instance PersistableWidth Int8
- Database.Record.Instances: instance PersistableWidth String
- Database.Record.KeyConstraint: instance HasColumnConstraint NotNull a => HasColumnConstraint NotNull (a, b)
- Database.Record.Persistable: instance (PersistableWidth a, PersistableWidth b) => PersistableWidth (a, b)
- Database.Record.Persistable: instance PersistableWidth ()
- Database.Record.Persistable: instance PersistableWidth a => PersistableWidth (Maybe a)
- Database.Record.ToSql: instance (PersistableType q, PersistableWidth a, ToSql q a) => ToSql q (Maybe a)
- Database.Record.ToSql: instance (ToSql q a, ToSql q b) => ToSql q (a, b)
- Database.Record.ToSql: instance ToSql q ()
+ Database.Record.FromSql: instance (Database.Record.FromSql.FromSql q a, Database.Record.FromSql.FromSql q b) => Database.Record.FromSql.FromSql q (a, b)
+ 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.FromSql: instance Database.Record.FromSql.FromSql q ()
+ Database.Record.FromSql: instance GHC.Base.Applicative (Database.Record.FromSql.RecordFromSql q)
+ Database.Record.FromSql: instance GHC.Base.Functor (Database.Record.FromSql.RecordFromSql q)
+ Database.Record.FromSql: instance GHC.Base.Monad (Database.Record.FromSql.RecordFromSql q)
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Base.String
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Int.Int16
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Int.Int32
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Int.Int64
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Int.Int8
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Types.Bool
+ Database.Record.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Types.Char
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Base.String
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Int.Int16
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Int.Int32
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Int.Int64
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Int.Int8
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Types.Bool
+ Database.Record.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Types.Char
+ Database.Record.KeyConstraint: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull a => Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull (a, b)
+ Database.Record.Persistable: instance (Database.Record.Persistable.PersistableWidth a, Database.Record.Persistable.PersistableWidth b) => Database.Record.Persistable.PersistableWidth (a, b)
+ Database.Record.Persistable: instance Database.Record.Persistable.PersistableWidth ()
+ 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.Persistable.PersistableWidth a, Database.Record.ToSql.ToSql q a) => Database.Record.ToSql.ToSql q (GHC.Base.Maybe a)
+ Database.Record.ToSql: instance (Database.Record.ToSql.ToSql q a, Database.Record.ToSql.ToSql q b) => Database.Record.ToSql.ToSql q (a, b)
+ Database.Record.ToSql: instance Database.Record.ToSql.ToSql q ()
- Database.Record.TH: defineRecord :: TypeQ -> (VarName, VarName) -> ConName -> [(VarName, TypeQ)] -> [ConName] -> Q [Dec]
+ Database.Record.TH: defineRecord :: TypeQ -> (VarName, VarName) -> ConName -> [(VarName, TypeQ)] -> [Name] -> Q [Dec]
- Database.Record.TH: defineRecordDefault :: TypeQ -> String -> [(String, TypeQ)] -> [ConName] -> Q [Dec]
+ Database.Record.TH: defineRecordDefault :: TypeQ -> String -> [(String, TypeQ)] -> [Name] -> Q [Dec]
- Database.Record.TH: defineRecordType :: ConName -> [(VarName, TypeQ)] -> [ConName] -> Q [Dec]
+ Database.Record.TH: defineRecordType :: ConName -> [(VarName, TypeQ)] -> [Name] -> Q [Dec]
- Database.Record.TH: defineRecordTypeDefault :: String -> [(String, TypeQ)] -> [ConName] -> Q [Dec]
+ Database.Record.TH: defineRecordTypeDefault :: String -> [(String, TypeQ)] -> [Name] -> Q [Dec]
- Database.Record.TH: derivingData :: ConName
+ Database.Record.TH: derivingData :: Name
- Database.Record.TH: derivingEq :: ConName
+ Database.Record.TH: derivingEq :: Name
- Database.Record.TH: derivingRead :: ConName
+ Database.Record.TH: derivingRead :: Name
- Database.Record.TH: derivingShow :: ConName
+ Database.Record.TH: derivingShow :: Name
- Database.Record.TH: derivingTypeable :: ConName
+ Database.Record.TH: derivingTypeable :: Name
Files
- persistable-record.cabal +1/−1
- src/Database/Record/TH.hs +21/−15
persistable-record.cabal view
@@ -1,5 +1,5 @@ name: persistable-record-version: 0.1.0.1+version: 0.2.0.0 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.
src/Database/Record/TH.hs view
@@ -66,6 +66,7 @@ import Control.Applicative (pure, (<*>)) import Data.List (foldl') import Data.Array (Array, listArray, (!))+import Data.Data (Data, Typeable) import Language.Haskell.TH.Name.CamelCase (ConName(conName), VarName(varName), conCamelcaseName, varCamelcaseName, varNameWithPrefix,@@ -163,25 +164,30 @@ defineHasNotNullKeyInstanceDefault = defineHasNotNullKeyInstance . recordTypeDefault +{-# DEPRECATED derivingEq "Use TH quasi-quotation like ''Eq instead of this." #-} -- | Name to specify deriving 'Eq'-derivingEq :: ConName-derivingEq = conCamelcaseName "Eq"+derivingEq :: Name+derivingEq = ''Eq +{-# DEPRECATED derivingShow "Use TH quasi-quotation like ''Show instead of this." #-} -- | Name to specify deriving 'Show'-derivingShow :: ConName-derivingShow = conCamelcaseName "Show"+derivingShow :: Name+derivingShow = ''Show +{-# DEPRECATED derivingRead "Use TH quasi-quotation like ''Read instead of this." #-} -- | Name to specify deriving 'Read'-derivingRead :: ConName-derivingRead = conCamelcaseName "Read"+derivingRead :: Name+derivingRead = ''Read +{-# DEPRECATED derivingData "Use TH quasi-quotation like ''Data instead of this." #-} -- | Name to specify deriving 'Data'-derivingData :: ConName-derivingData = conCamelcaseName "Data"+derivingData :: Name+derivingData = ''Data +{-# DEPRECATED derivingTypeable "Use TH quasi-quotation like ''Typeable instead of this." #-} -- | Name to specify deriving 'Typeable'-derivingTypeable :: ConName-derivingTypeable = conCamelcaseName "Typeable"+derivingTypeable :: Name+derivingTypeable = ''Typeable -- | Record type width expression template. recordWidthTemplate :: TypeQ -- ^ Record type constructor.@@ -209,12 +215,12 @@ -- | Record type declaration template. defineRecordType :: ConName -- ^ Name of the data type of table record type. -> [(VarName, TypeQ)] -- ^ List of columns in the table. Must be legal, properly cased record columns.- -> [ConName] -- ^ Deriving type class names.+ -> [Name] -- ^ Deriving type class names. -> Q [Dec] -- ^ The data type record declaration. defineRecordType typeName' columns derives = do let typeName = conName typeName' fld (n, tq) = varStrictType (varName n) (strictType isStrict tq)- rec <- dataD (cxt []) typeName [] [recC typeName (map fld columns)] (map conName derives)+ rec <- dataD (cxt []) typeName [] [recC typeName (map fld columns)] derives offs <- defineColumnOffsets typeName' [ty | (_, ty) <- columns] return $ rec : offs @@ -224,7 +230,7 @@ -- | Record type declaration template from SQL table name 'String' -- and column name 'String' - type pairs, derivings.-defineRecordTypeDefault :: String -> [(String, TypeQ)] -> [ConName] -> Q [Dec]+defineRecordTypeDefault :: String -> [(String, TypeQ)] -> [Name] -> Q [Dec] defineRecordTypeDefault table columns = defineRecordType (recordTypeNameDefault table)@@ -368,7 +374,7 @@ -> (VarName, VarName) -- ^ Constructor function name and decompose function name -> ConName -- ^ Record type name -> [(VarName, TypeQ)] -- ^ Column schema- -> [ConName] -- ^ Record derivings+ -> [Name] -- ^ Record derivings -> Q [Dec] -- ^ Result declarations defineRecord sqlValueType@@ -383,7 +389,7 @@ defineRecordDefault :: TypeQ -- ^ SQL value type -> String -- ^ Table name -> [(String, TypeQ)] -- ^ Column names and types- -> [ConName] -- ^ Record derivings+ -> [Name] -- ^ Record derivings -> Q [Dec] -- ^ Result declarations defineRecordDefault sqlValueType table columns derives = do typ <- defineRecordTypeDefault table columns derives