Safe Haskell | None |
---|
- selectAll :: (Connection con, MonadResource m, FromRow row, ToRow params) => con -> Query -> params -> Source m row
- insertAll :: (Connection con, MonadResource m, ToRow a) => con -> Query -> Sink a m ()
- insertAllCount :: (Connection con, MonadResource m, Num count, ToRow a) => con -> Query -> Sink a m count
- insertAllTrans :: (Connection con, MonadResource m, ToRow a) => con -> Query -> Sink (Flush a) m ()
- flushAt :: (Monad m, Integral i) => i -> Conduit a m (Flush a)
- flushBy :: Monad m => (a -> a -> Bool) -> Conduit a m (Flush a)
- statementSource :: (Statement stmt, MonadResource m) => (stmt -> m (Maybe a)) -> IO stmt -> Source m a
- statementSink :: (Statement stmt, MonadResource m) => (stmt -> a -> m ()) -> IO stmt -> Sink a m ()
- statementSinkCount :: (Statement stmt, MonadResource m, Num count) => (stmt -> a -> m ()) -> IO stmt -> Sink a m count
- statementSinkTrans :: (Connection con, ConnStatement con ~ stmt, MonadResource m, MonadIO m) => con -> (stmt -> a -> m ()) -> IO stmt -> Sink (Flush a) m ()
- allocConnection :: (Connection con, MonadResource m) => IO con -> m (ReleaseKey, con)
- allocStmt :: (Statement stmt, MonadResource m) => IO stmt -> m (ReleaseKey, stmt)
- executeStmt :: (Connection con, ConnStatement con ~ stmt, ToRow row, MonadResource m) => con -> Query -> row -> m (ReleaseKey, stmt)
- asSqlVals :: Monad m => Conduit [SqlValue] m [SqlValue]
- asThisType :: Monad m => a -> Conduit a m a
Conduit functions
selectAll :: (Connection con, MonadResource m, FromRow row, ToRow params) => con -> Query -> params -> Source m rowSource
Execute query and stream result
insertAll :: (Connection con, MonadResource m, ToRow a) => con -> Query -> Sink a m ()Source
perform executeRow
for each input row
insertAllCount :: (Connection con, MonadResource m, Num count, ToRow a) => con -> Query -> Sink a m countSource
same as insertAll
but also count executed rows
insertAllTrans :: (Connection con, MonadResource m, ToRow a) => con -> Query -> Sink (Flush a) m ()Source
Execute query on each (Chunk row) and commit on each Flush. The last query is always commit, so be carefull.
flushAt :: (Monad m, Integral i) => i -> Conduit a m (Flush a)Source
separate each i
chunks with Flush
flushBy :: Monad m => (a -> a -> Bool) -> Conduit a m (Flush a)Source
The behaviour is the same as groupBy
function. Each time when prefix
return False the conduit yields Flush.
Auxiliary conduit functions
statementSource :: (Statement stmt, MonadResource m) => (stmt -> m (Maybe a)) -> IO stmt -> Source m aSource
Get all values from the statement until action return ''Just a''
statementSink :: (Statement stmt, MonadResource m) => (stmt -> a -> m ()) -> IO stmt -> Sink a m ()Source
Same as statementSinkCount
but without counting, just return ()
statementSinkCount :: (Statement stmt, MonadResource m, Num count) => (stmt -> a -> m ()) -> IO stmt -> Sink a m countSource
Execute action many times with given thread of values, return the count of executions
statementSinkTrans :: (Connection con, ConnStatement con ~ stmt, MonadResource m, MonadIO m) => con -> (stmt -> a -> m ()) -> IO stmt -> Sink (Flush a) m ()Source
Execute each chunk with putter function and commit transaction on each flush. The last action is always commit.
ResourceT functions
allocConnection :: (Connection con, MonadResource m) => IO con -> m (ReleaseKey, con)Source
allocStmt :: (Statement stmt, MonadResource m) => IO stmt -> m (ReleaseKey, stmt)Source
executeStmt :: (Connection con, ConnStatement con ~ stmt, ToRow row, MonadResource m) => con -> Query -> row -> m (ReleaseKey, stmt)Source
Stream typing helpers
asSqlVals :: Monad m => Conduit [SqlValue] m [SqlValue]Source
Function to fuse when no data convertion is needed
asThisType :: Monad m => a -> Conduit a m aSource
To specify actual stream type by fusing with it. The value of argument is not used