{-# LANGUAGE CPP #-}
module Database.Persist.Sql.Lifted
(
MonadSqlTx (..)
, HasSqlBackend (..)
, SqlBackend
, MonadSqlBackend (..)
, liftSql
, get
, getBy
, getByValue
, getEntity
, getJust
, getJustEntity
, getMany
, select
, selectOne
, selectFirst
, selectKeysList
, selectList
, count
, exists
, existsBy
, insertSelect
, insertSelectCount
, insert
, insert_
, insertBy
, insertEntity
, insertEntityMany
, insertKey
, insertMany
, insertMany_
, insertRecord
, insertUnique
, insertUnique_
, insertUniqueEntity
, update
, updateCount
, update'
, updateGet
, updateGetEntity
, updateWhere
, updateWhereCount
, replace
, replaceUnique
, repsert
, repsertMany
, upsert
, upsertBy
, putMany
, checkUnique
, checkUniqueUpdateable
, onlyUnique
, delete
, deleteKey
, deleteBy
, deleteWhere
, deleteCount
, deleteWhereCount
, transactionSave
, transactionSaveWithIsolation
, transactionUndo
, transactionUndoWithIsolation
, rawSql
, rawExecute
, rawExecuteCount
, getFieldName
, getTableName
, renderQueryDelete
, renderQueryInsertInto
, renderQuerySelect
, renderQueryToText
, renderQueryUpdate
) where
#if MIN_VERSION_base(4,17,0)
import Data.Type.Equality (type (~))
#endif
import Data.Functor ((<$>))
import Database.Persist (Key, PersistEntity (PersistEntityBackend), Update)
import Database.Persist.Sql.Lifted.Core
import Database.Persist.Sql.Lifted.Esqueleto
import Database.Persist.Sql.Lifted.Persistent hiding (delete, update)
import Database.Persist.Sql.Lifted.Persistent qualified as Persistent
import Database.Persist.Types (Entity (..))
import GHC.Stack (HasCallStack)
update'
:: forall a m
. ( HasCallStack
, MonadSqlBackend m
, PersistEntity a
, PersistEntityBackend a ~ SqlBackend
)
=> Key a
-> [Update a]
-> m ()
update' :: forall a (m :: * -> *).
(HasCallStack, MonadSqlBackend m, PersistEntity a,
PersistEntityBackend a ~ SqlBackend) =>
Key a -> [Update a] -> m ()
update' = Key a -> [Update a] -> m ()
forall a (m :: * -> *).
(HasCallStack, MonadSqlBackend m, PersistEntity a,
PersistEntityBackend a ~ SqlBackend) =>
Key a -> [Update a] -> m ()
Persistent.update
updateGetEntity
:: forall a m
. ( HasCallStack
, MonadSqlBackend m
, PersistEntity a
, PersistEntityBackend a ~ SqlBackend
)
=> Key a
-> [Update a]
-> m (Entity a)
updateGetEntity :: forall a (m :: * -> *).
(HasCallStack, MonadSqlBackend m, PersistEntity a,
PersistEntityBackend a ~ SqlBackend) =>
Key a -> [Update a] -> m (Entity a)
updateGetEntity Key a
k [Update a]
us = Key a -> a -> Entity a
forall record. Key record -> record -> Entity record
Entity Key a
k (a -> Entity a) -> m a -> m (Entity a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Key a -> [Update a] -> m a
forall a (m :: * -> *).
(HasCallStack, MonadSqlBackend m, PersistEntity a,
PersistEntityBackend a ~ SqlBackend) =>
Key a -> [Update a] -> m a
updateGet Key a
k [Update a]
us