persistent 2.0.3.1 → 2.0.4
raw patch · 2 files changed
+18/−11 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Database.Persist.Quasi: psIdName :: PersistSettings -> !Text
- Database.Persist.Quasi: PersistSettings :: !(Text -> Text) -> !Bool -> PersistSettings
+ Database.Persist.Quasi: PersistSettings :: !(Text -> Text) -> !Bool -> !Text -> PersistSettings
Files
- Database/Persist/Quasi.hs +17/−10
- persistent.cabal +1/−1
Database/Persist/Quasi.hs view
@@ -83,22 +83,29 @@ -- ^ Whether fields are by default strict. Default value: @True@. -- -- Since 1.2+ , psIdName :: !Text+ -- ^ The name of the id column. Default value: @id@+ -- The name of the id column can also be changed on a per-model basis+ -- <https://github.com/yesodweb/persistent/wiki/Persistent-entity-syntax>+ --+ -- Since 2.0 } -upperCaseSettings :: PersistSettings-upperCaseSettings = PersistSettings+defaultPersistSettings, upperCaseSettings, lowerCaseSettings :: PersistSettings+defaultPersistSettings = PersistSettings { psToDBName = id , psStrictFields = True+ , psIdName = "id" } -lowerCaseSettings :: PersistSettings-lowerCaseSettings = PersistSettings+upperCaseSettings = defaultPersistSettings++lowerCaseSettings = defaultPersistSettings { psToDBName = let go c | isUpper c = T.pack ['_', toLower c] | otherwise = T.singleton c in T.dropWhile (== '_') . T.concatMap go- , psStrictFields = True } -- | Parses a quasi-quoted syntax into a list of entity definitions.@@ -326,7 +333,7 @@ cols :: [FieldDef] cols = mapMaybe (takeColsEx ps) attribs - autoIdField = mkAutoIdField entName (DBName `fmap` idName) idSqlType+ autoIdField = mkAutoIdField ps entName (DBName `fmap` idName) idSqlType idSqlType = maybe SqlInt64 (const $ SqlOther "Primary Key") primaryComposite setComposite Nothing fd = fd@@ -339,13 +346,13 @@ just1 x y = x `mplus` y -mkAutoIdField :: HaskellName -> Maybe DBName -> SqlType -> FieldDef-mkAutoIdField entName idName idSqlType = FieldDef+mkAutoIdField :: PersistSettings -> HaskellName -> Maybe DBName -> SqlType -> FieldDef+mkAutoIdField ps entName idName idSqlType = FieldDef { fieldHaskell = HaskellName "Id" -- this should be modeled as a Maybe -- but that sucks for non-ID field -- TODO: use a sumtype FieldDef | IdFieldDef- , fieldDB = fromMaybe (DBName "") idName+ , fieldDB = fromMaybe (DBName $ psIdName ps) idName , fieldType = FTTypeCon Nothing $ keyConName $ unHaskellName entName , fieldSqlType = idSqlType -- the primary field is actually a reference to the entity@@ -432,7 +439,7 @@ keyCon = keyConName tableName -- this will be ignored if there is already an existing sql= -- TODO: I think there is a ! ignore syntax that would screw this up- setIdName = ["sql="]+ setIdName = ["sql=" `mappend` psIdName ps] takeId _ tableName _ = error $ "empty Id field for " `mappend` show tableName
persistent.cabal view
@@ -1,5 +1,5 @@ name: persistent-version: 2.0.3.1+version: 2.0.4 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>