persistent-1.0.2.1: Type-safe, multi-backend data serialization.

Safe HaskellNone

Database.Persist.Query.GenericSql

Synopsis

Documentation

class PersistStore backend m => PersistQuery backend m whereSource

Methods

update :: PersistEntity val => Key backend val -> [Update val] -> backend m ()Source

Update individual fields on a specific record.

updateGet :: PersistEntity val => Key backend val -> [Update val] -> backend m valSource

Update individual fields on a specific record, and retrieve the updated value from the database.

Note that this function will throw an exception if the given key is not found in the database.

updateWhere :: PersistEntity val => [Filter val] -> [Update val] -> backend m ()Source

Update individual fields on any record matching the given criterion.

deleteWhere :: PersistEntity val => [Filter val] -> backend m ()Source

Delete all records matching the given criterion.

selectSource :: (PersistEntity val, PersistEntityBackend val ~ backend) => [Filter val] -> [SelectOpt val] -> Source (ResourceT (backend m)) (Entity val)Source

Get all records matching the given criterion in the specified order. Returns also the identifiers.

selectFirst :: (PersistEntity val, PersistEntityBackend val ~ backend) => [Filter val] -> [SelectOpt val] -> backend m (Maybe (Entity val))Source

get just the first record for the criterion

selectKeys :: PersistEntity val => [Filter val] -> [SelectOpt val] -> Source (ResourceT (backend m)) (Key backend val)Source

Get the Keys of all records matching the given criterion.

count :: PersistEntity val => [Filter val] -> backend m IntSource

The total number of records fulfilling the given criterion.

newtype SqlPersist m a Source

Constructors

SqlPersist 

Instances

MonadTrans SqlPersist 
MonadTransControl SqlPersist 
(PersistStore SqlPersist m, MonadBaseControl IO m, MonadUnsafeIO m, MonadIO m, MonadThrow m, MonadLogger m) => PersistUnique SqlPersist m 
(MonadBaseControl IO (SqlPersist m), MonadBaseControl IO m, MonadIO m, MonadThrow m, MonadUnsafeIO m, MonadLogger m) => PersistStore SqlPersist m 
(PersistStore SqlPersist m, MonadThrow m, MonadIO m, MonadUnsafeIO m, MonadBaseControl IO m, MonadLogger m) => PersistQuery SqlPersist m 
(MonadBase backend (SqlPersist m), MonadBaseControl backend m) => MonadBaseControl backend (SqlPersist m) 
(Applicative backend, Applicative (SqlPersist m), Monad backend, Monad (SqlPersist m), MonadBase backend m) => MonadBase backend (SqlPersist m) 
Monad m => Monad (SqlPersist m) 
Functor m => Functor (SqlPersist m) 
(Monad (SqlPersist m), MonadPlus m) => MonadPlus (SqlPersist m) 
(Functor (SqlPersist m), Applicative m) => Applicative (SqlPersist m) 
(Monad (SqlPersist m), MonadThrow m) => MonadThrow (SqlPersist m) 
(MonadThrow (SqlPersist m), MonadUnsafeIO (SqlPersist m), MonadIO (SqlPersist m), Applicative (SqlPersist m), MonadResource m) => MonadResource (SqlPersist m) 
(Monad (SqlPersist m), MonadLogger m) => MonadLogger (SqlPersist m) 
(Monad (SqlPersist m), MonadIO m) => MonadIO (SqlPersist m) 
(MonadIO (SqlPersist m), MonadLogger (SqlPersist m), MonadIO m, MonadLogger m) => MonadSqlPersist (SqlPersist m) 
PathPiece (Key SqlPersist entity) 
(PersistEntity one, PersistEntity many, Eq (Key SqlPersist one)) => RunJoin (SelectOneMany SqlPersist one many) 

filterClauseNoWhereSource

Arguments

:: PersistEntity val 
=> Bool

include table name?

-> Connection 
-> [Filter val] 
-> Text 

filterClauseNoWhereOrNullSource

Arguments

:: PersistEntity val 
=> Bool

include table name?

-> Connection 
-> [Filter val] 
-> Text 

selectSourceConn :: (PersistEntity val, SqlPersist ~ PersistEntityBackend val, MonadThrow m, MonadUnsafeIO m, MonadIO m, MonadBaseControl IO m, MonadLogger m) => Connection -> [Filter val] -> [SelectOpt val] -> Source (ResourceT m) (Entity val)Source

Equivalent to selectSource, but instead of getting the connection from the environment inside a SqlPersist monad, provide an explicit Connection. This can allow you to use the returned Source in an arbitrary monad.

orderClauseSource

Arguments

:: PersistEntity val 
=> Bool

include the table name

-> Connection 
-> SelectOpt val 
-> Text