packages feed

persistent 1.0.1.3 → 1.0.2

raw patch · 3 files changed

+20/−10 lines, 3 filesdep ~lifted-basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: lifted-base

API changes (from Hackage documentation)

+ Database.Persist.GenericSql.Internal: ISRInsertGet :: Text -> Text -> InsertSqlResult
+ Database.Persist.GenericSql.Internal: ISRSingle :: Text -> InsertSqlResult
+ Database.Persist.GenericSql.Internal: data InsertSqlResult
- Database.Persist.GenericSql.Internal: Connection :: (Text -> IO Statement) -> (DBName -> [DBName] -> Either Text (Text, Text)) -> IORef (Map Text Statement) -> IO () -> (forall v. PersistEntity v => [EntityDef] -> (Text -> IO Statement) -> v -> IO (Either [Text] [(Bool, Text)])) -> ((Text -> IO Statement) -> IO ()) -> ((Text -> IO Statement) -> IO ()) -> ((Text -> IO Statement) -> IO ()) -> (DBName -> Text) -> Text -> Connection
+ Database.Persist.GenericSql.Internal: Connection :: (Text -> IO Statement) -> (DBName -> [DBName] -> DBName -> InsertSqlResult) -> IORef (Map Text Statement) -> IO () -> (forall v. PersistEntity v => [EntityDef] -> (Text -> IO Statement) -> v -> IO (Either [Text] [(Bool, Text)])) -> ((Text -> IO Statement) -> IO ()) -> ((Text -> IO Statement) -> IO ()) -> ((Text -> IO Statement) -> IO ()) -> (DBName -> Text) -> Text -> Connection
- Database.Persist.GenericSql.Internal: insertSql :: Connection -> DBName -> [DBName] -> Either Text (Text, Text)
+ Database.Persist.GenericSql.Internal: insertSql :: Connection -> DBName -> [DBName] -> DBName -> InsertSqlResult

Files

Database/Persist/GenericSql.hs view
@@ -97,16 +97,16 @@ instance (MonadBaseControl IO m, MonadIO m, C.MonadThrow m, C.MonadUnsafeIO m, MonadLogger m) => PersistStore SqlPersist m where     insert val = do         conn <- SqlPersist ask-        let esql = insertSql conn (entityDB t) (map fieldDB $ entityFields t)+        let esql = insertSql conn (entityDB t) (map fieldDB $ entityFields t) (entityID t)         i <-             case esql of-                Left sql -> C.runResourceT $ R.withStmt sql vals C.$$ do+                ISRSingle sql -> C.runResourceT $ R.withStmt sql vals C.$$ do                     x <- CL.head                     case x of                         Just [PersistInt64 i] -> return i                         Nothing -> error $ "SQL insert did not return a result giving the generated ID"                         Just vals' -> error $ "Invalid result from a SQL insert, got: " P.++ P.show vals'-                Right (sql1, sql2) -> do+                ISRInsertGet sql1 sql2 -> do                     execute' sql1 vals                     C.runResourceT $ R.withStmt sql2 [] C.$$ do                         Just [PersistInt64 i] <- CL.head@@ -124,7 +124,9 @@                 , escapeName conn (entityDB t)                 , " SET "                 , T.intercalate "," (map (go conn . fieldDB) $ entityFields t)-                , " WHERE id=?"+                , " WHERE "+                , escapeName conn $ entityID t+                , "=?"                 ]             vals = map toPersistValue (toPersistFields val) `mappend` [unKey k]         execute' sql vals@@ -148,7 +150,9 @@                 , cols                 , " FROM "                 , escapeName conn $ entityDB t-                , " WHERE id=?"+                , " WHERE "+                , escapeName conn $ entityID t+                , "=?"                 ]             vals' = [unKey k]         C.runResourceT $ R.withStmt sql vals' C.$$ do@@ -168,7 +172,9 @@         sql conn = concat             [ "DELETE FROM "             , escapeName conn $ entityDB t-            , " WHERE id=?"+            , " WHERE "+            , escapeName conn $ entityID t+            , "=?"             ]  insrepHelper :: (MonadIO m, PersistEntity val, MonadLogger m)
Database/Persist/GenericSql/Internal.hs view
@@ -15,6 +15,7 @@     , mkColumns     , Column (..)     , logSQL+    , InsertSqlResult (..)     ) where  import qualified Data.Map as Map@@ -35,10 +36,13 @@ import Control.Monad.Logger (logDebugS) import Data.Maybe (mapMaybe, listToMaybe) +data InsertSqlResult = ISRSingle Text+                     | ISRInsertGet Text Text+ data Connection = Connection     { prepare :: Text -> IO Statement-    -- ^ table name, column names, either 1 or 2 statements to run-    , insertSql :: DBName -> [DBName] -> Either Text (Text, Text)+    -- ^ table name, column names, id name, either 1 or 2 statements to run+    , insertSql :: DBName -> [DBName] -> DBName -> InsertSqlResult     , stmtMap :: IORef (Map.Map Text Statement)     , close :: IO ()     , migrateSql :: forall v. PersistEntity v
persistent.cabal view
@@ -1,5 +1,5 @@ name:            persistent-version:         1.0.1.3+version:         1.0.2 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -35,7 +35,7 @@                    , conduit                  >= 0.5     && < 0.6                    , resourcet                >= 0.3     && < 0.5                    , monad-control            >= 0.3     && < 0.4-                   , lifted-base              >= 0.1+                   , lifted-base              >= 0.1     && < 0.2                    , pool-conduit             >= 0.1     && < 0.2                    , path-pieces              >= 0.1     && < 0.2                    , aeson                    >= 0.5     && < 0.7