packages feed

persistent 2.14.4.3 → 2.14.4.4

raw patch · 4 files changed

+25/−12 lines, 4 files

Files

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