module Hasql.CursorTransaction.Private.Transactions where import Hasql.CursorTransaction.Private.Prelude import qualified Hasql.CursorTransaction.Private.Specs as B import qualified Hasql.CursorTransaction.Private.Statements as A import qualified Hasql.Decoders as E import qualified Hasql.Encoders as F import qualified Hasql.Transaction as C declareCursor :: ByteString -> ByteString -> F.Params params -> params -> C.Transaction () declareCursor :: forall params. ByteString -> ByteString -> Params params -> params -> Transaction () declareCursor ByteString cursorName ByteString template Params params paramsEncoder params params = params -> Statement params () -> Transaction () forall a b. a -> Statement a b -> Transaction b C.statement params params (ByteString -> ByteString -> Params params -> Statement params () forall a. ByteString -> ByteString -> Params a -> Statement a () A.declareCursor ByteString cursorName ByteString template Params params paramsEncoder) closeCursor :: ByteString -> C.Transaction () closeCursor :: ByteString -> Transaction () closeCursor ByteString cursorName = () -> Statement () () -> Transaction () forall a b. a -> Statement a b -> Transaction b C.statement () (ByteString -> Statement () () A.closeCursor ByteString cursorName) fetchFromCursor :: ByteString -> B.BatchSize -> E.Result result -> C.Transaction result fetchFromCursor :: forall result. ByteString -> BatchSize -> Result result -> Transaction result fetchFromCursor ByteString cursorName BatchSize batchSize Result result decoder = () -> Statement () result -> Transaction result forall a b. a -> Statement a b -> Transaction b C.statement () (ByteString -> BatchSize -> Result result -> Statement () result forall result. ByteString -> BatchSize -> Result result -> Statement () result A.fetchFromCursor ByteString cursorName BatchSize batchSize Result result decoder)