Safe Haskell | None |
---|---|
Language | Haskell2010 |
Hasql.Backend
Description
An open API for implementation of specific backend drivers.
- class Cx c where
- type CxSettings c
- type CxError c
- acquireCx :: CxSettings c -> IO (Either (CxError c) c)
- releaseCx :: c -> IO ()
- data family ResultValue c
- type ResultRow c = Vector (ResultValue c)
- type ResultStream c = ListT IO (ResultRow c)
- type ResultMatrix c = Vector (ResultRow c)
- data Stmt c = Stmt {
- stmtTemplate :: !Text
- stmtParams :: !(Vector (StmtParam c))
- stmtPreparable :: !Bool
- data family StmtParam c
- class CxValue c v where
- encodeValue :: v -> StmtParam c
- decodeValue :: ResultValue c -> Either Text v
- class CxTx c where
- data TxIsolationLevel
- type TxMode = Maybe (TxIsolationLevel, TxWriteMode)
- type TxWriteMode = Maybe Bool
- type Tx c = FreeT (TxF c) (MaybeT (EitherT (TxError c) IO))
- data TxF c x
- unitTx :: Stmt c -> Tx c ()
- countTx :: Stmt c -> Tx c Word64
- vectorTx :: Stmt c -> Tx c (Vector (ResultRow c))
- streamTx :: Stmt c -> Tx c (ListT (Tx c) (ResultRow c))
Connection
Results
data family ResultValue c Source
A raw value returned from the database.
type ResultRow c = Vector (ResultValue c) Source
A raw result row.
type ResultStream c = ListT IO (ResultRow c) Source
A stream of rows of a result.
type ResultMatrix c = Vector (ResultRow c) Source
A matrix of a result.
Statements
A statement template packed with its values and settings.
Constructors
Stmt | |
Fields
|
Mapping
Transaction
A transaction execution support.
data TxIsolationLevel Source
For reference see the Wikipedia info.
Constructors
RepeatableReads | |
Serializable | |
ReadCommitted | |
ReadUncommitted |
type TxMode = Maybe (TxIsolationLevel, TxWriteMode) Source
A mode, defining how a transaction should be executed.
Just (isolationLevel, write)
indicates that a database transaction should be established with a specified isolation level and a write mode.Nothing
indicates that there should be no database transaction established on the backend and therefore it should be executed with no ACID guarantees, but also without any induced overhead.
type TxWriteMode = Maybe Bool Source
Nothing
indicates a "read" mode.Just True
indicates a "write" mode.Just False
indicates a "write" mode without committing. This is useful for testing, allowing you to modify your database, producing some result based on your changes, and to let Hasql roll all the changes back on the exit from the transaction.