persistent 2.14.4.3 → 2.14.4.4
raw patch · 4 files changed
+25/−12 lines, 4 files
Files
- ChangeLog.md +6/−0
- Database/Persist/TH.hs +15/−11
- persistent.cabal +1/−1
- test/Database/Persist/TH/NoFieldSelectorsSpec.hs +3/−0
ChangeLog.md view
@@ -1,5 +1,11 @@ # Changelog for persistent +## 2.14.4.4++* [#1460] https://github.com/yesodweb/persistent/pull/1460+ * Fix a problem where a `Primary` key causes `mkPersist` to generate code+ that doesn't compile under `NoFieldSelectors`+ ## 2.14.4.3 * [#1452](https://github.com/yesodweb/persistent/pull/1452)
Database/Persist/TH.hs view
@@ -20,6 +20,11 @@ -- | This module provides the tools for defining your database schema and using -- it to generate Haskell data types and migrations.+--+-- For documentation on the domain specific language used for defining database+-- models, see "Database.Persist.Quasi".+--+-- module Database.Persist.TH ( -- * Parse entity defs persistWith@@ -30,7 +35,11 @@ -- * Turn @EntityDef@s into types , mkPersist , mkPersistWith+ -- ** Configuring Entity Definition , MkPersistSettings+ , mkPersistSettings+ , sqlSettings+ -- *** Record Fields (for update/viewing settings) , mpsBackend , mpsGeneric , mpsPrefixFields@@ -41,8 +50,6 @@ , mpsDeriveInstances , mpsCamelCaseCompositeKeySelector , EntityJSON(..)- , mkPersistSettings- , sqlSettings -- ** Implicit ID Columns , ImplicitIdDef , setImplicitIdDef@@ -1840,8 +1847,10 @@ ListE <$> mapM (f recName) (toList $ unboundCompositeCols ucd) f recName fieldNameHS = [|- toPersistValue ($(varE $ keyFieldName mps entDef fieldNameHS) $(varE recName))+ toPersistValue ($(pure $ keyFieldSel fieldNameHS) $(varE recName)) |]+ keyFieldSel name+ = fieldSel (keyConName entDef) (keyFieldName mps entDef name) normalClause :: [Pat] -> Exp -> Clause normalClause p e = Clause p (NormalB e) []@@ -1985,7 +1994,6 @@ [keyFromRecordM'] <- case unboundPrimarySpec entDef of NaturalKey ucd -> do- recordVarName <- newName "record" let keyCon = keyConName entDef@@ -1995,15 +2003,11 @@ foldl' AppE (ConE keyCon)- (toList $ fmap- (\n ->- VarE n `AppE` VarE recordVarName- )- keyFields'- )+ (VarE <$> keyFields') keyFromRec = varP 'keyFromRecordM+ lam = LamE [RecP name [(n, VarP n) | n <- toList keyFields']] constr [d|- $(keyFromRec) = Just ( \ $(varP recordVarName) -> $(pure constr))+ $(keyFromRec) = Just $(pure lam) |] _ ->
persistent.cabal view
@@ -1,5 +1,5 @@ name: persistent-version: 2.14.4.3+version: 2.14.4.4 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>
test/Database/Persist/TH/NoFieldSelectorsSpec.hs view
@@ -21,7 +21,10 @@ mkPersist sqlSettings {mpsFieldLabelModifier = const id} [persistLowerCase| User+ ident Text name Text+ Primary ident+ team TeamId Team name Text