packages feed

persistent 2.18.0.0 → 2.18.1.0

raw patch · 6 files changed

+43/−6 lines, 6 files

Files

ChangeLog.md view
@@ -1,9 +1,16 @@ # Changelog for persistent +# 2.18.1.0+* [#1616](https://github.com/yesodweb/persistent/pull/1616)+  * Allow overriding the default cascade option for foreign keys. +* [#1608](https://github.com/yesodweb/persistent/pull/1608)+  * Improves documentation on getBy with nullable fields+  * Updates the warning text present when you try to make a Unique field that is nullable+ # 2.18.0.0  * [#1610](https://github.com/yesodweb/persistent/pull/1610)-  * Added `NoAction` as a `CascadeAction` +  * Added `NoAction` as a `CascadeAction`  # 2.17.1.0 
Database/Persist/Class/PersistUnique.hs view
@@ -57,6 +57,8 @@ class (PersistStoreRead backend) => PersistUniqueRead backend where     -- | Get a record by unique key, if available. Returns also the identifier.     --+    -- If your unique key contains a nullable field, then, by default, getBy will not match if any of the fields are NULL.+    --     -- === __Example usage__     --     -- With <#schema-persist-unique-1 schema-1> and <#dataset-persist-unique-1 dataset-1>:
Database/Persist/Sql.hs view
@@ -61,6 +61,8 @@     , emptyBackendSpecificOverrides     , getBackendSpecificForeignKeyName     , setBackendSpecificForeignKeyName+    , getBackendSpecificForeignKeyCascadeDefault+    , setBackendSpecificForeignKeyCascadeDefault     , defaultAttribute        -- * Internal
Database/Persist/Sql/Internal.hs view
@@ -10,6 +10,8 @@     , BackendSpecificOverrides (..)     , getBackendSpecificForeignKeyName     , setBackendSpecificForeignKeyName+    , getBackendSpecificForeignKeyCascadeDefault+    , setBackendSpecificForeignKeyCascadeDefault     , emptyBackendSpecificOverrides     ) where @@ -36,6 +38,7 @@ data BackendSpecificOverrides = BackendSpecificOverrides     { backendSpecificForeignKeyName         :: Maybe (EntityNameDB -> FieldNameDB -> ConstraintNameDB)+    , backendSpecificForeignKeyCascadeDefault :: CascadeAction     }  -- | If the override is defined, then this returns a function that accepts an@@ -61,6 +64,26 @@ setBackendSpecificForeignKeyName func bso =     bso{backendSpecificForeignKeyName = Just func} +-- | If the override is defined, then this specifies what cascade action+-- should be used if there is none defined for the column.+--+-- @since 2.18.1.0+getBackendSpecificForeignKeyCascadeDefault+    :: BackendSpecificOverrides+    -> CascadeAction+getBackendSpecificForeignKeyCascadeDefault =+    backendSpecificForeignKeyCascadeDefault++-- | Set the backend's default cascade action.+--+-- @since 2.18.1.0+setBackendSpecificForeignKeyCascadeDefault+    :: CascadeAction+    -> BackendSpecificOverrides+    -> BackendSpecificOverrides+setBackendSpecificForeignKeyCascadeDefault action bso =+    bso{backendSpecificForeignKeyCascadeDefault = action}+ findMaybe :: (a -> Maybe b) -> [a] -> Maybe b findMaybe p = listToMaybe . mapMaybe p @@ -68,7 +91,7 @@ -- -- @since 2.11 emptyBackendSpecificOverrides :: BackendSpecificOverrides-emptyBackendSpecificOverrides = BackendSpecificOverrides Nothing+emptyBackendSpecificOverrides = BackendSpecificOverrides Nothing Restrict  defaultAttribute :: [FieldAttr] -> Maybe Text defaultAttribute = findMaybe $ \case@@ -171,9 +194,11 @@     -- explicitly makes migrations run smoother.     overrideNothings (FieldCascade{fcOnUpdate = upd, fcOnDelete = del}) =         FieldCascade-            { fcOnUpdate = upd <|> Just Restrict-            , fcOnDelete = del <|> Just Restrict+            { fcOnUpdate = upd <|> Just defaultAction+            , fcOnDelete = del <|> Just defaultAction             }+      where+        defaultAction = (backendSpecificForeignKeyCascadeDefault overrides)      ref         :: FieldNameDB
Database/Persist/TH/Internal.hs view
@@ -1524,7 +1524,8 @@             , "column in question.  If you understand this feature of SQL and still "             , "intend to add a uniqueness constraint here,    *** Use a \"!force\" "             , "attribute on the end of the line that defines your uniqueness "-            , "constraint in order to disable this check. ***"+            , "constraint in order to disable this check. ***\n"+            , "By default, this means using `getBy`, `insertBy`, or anything that fetches by unique key will NOT match if any of the fields are NULL."             ]  -- | This function renders a Template Haskell 'Type' for an 'UnboundFieldDef'.
persistent.cabal view
@@ -1,5 +1,5 @@ name:               persistent-version:            2.18.0.0+version:            2.18.1.0 license:            MIT license-file:       LICENSE author:             Michael Snoyman <michael@snoyman.com>