Module
Control.Monad.Postgres.Base
- Package
- purescript-postgresql
- Repository
- cakekindel/purescript-postgresql
#PostgresT Source
newtype PostgresT :: forall k. (k -> Type) -> k -> Typenewtype PostgresT m a
Monad handling pool resource acquisition & release
runPostgres
{connectionString: "postgresql://postgres:postgres@localhost:5432"}
$ session do
exec_ "create table foo (bar int);"
exec_ "insert into foo values (1);"
res <- query "select * from foo"
pure $ res == 1
Is equivalent to:
do
pool <- liftEffect $ Pool.make {connectionString: "postgresql://postgres:postgres@localhost:5432"}
finally (Pool.end pool) do
client <- Pool.connect pool
finally (liftEffect $ Pool.release pool client) do
Client.exec_ "create table foo (bar int);" client
Client.exec_ "insert into foo values (1);" client
res <- Client.query "select * from foo" client
pure $ res == 1
Constructors
Instances
Newtype (PostgresT m a) _(Functor m) => Functor (PostgresT m)(Apply m) => Apply (PostgresT m)(Applicative m) => Applicative (PostgresT m)(Plus m) => Plus (PostgresT m)(Alt m) => Alt (PostgresT m)(Bind m) => Bind (PostgresT m)(Monad m) => Monad (PostgresT m)(MonadEffect m) => MonadEffect (PostgresT m)(MonadAff m) => MonadAff (PostgresT m)MonadTrans PostgresT(MonadThrow e m) => MonadThrow e (PostgresT m)(MonadError e m) => MonadError e (PostgresT m)(MonadFork f m) => MonadFork f (PostgresT m)MFunctor PostgresTMMonad PostgresT(Apply m, Apply p, Parallel p m) => Parallel (PostgresT p) (PostgresT m)(Monad m, MonadKill e f m) => MonadKill e f (PostgresT m)(Monad m, MonadBracket e f (ReaderT Pool m), MonadBracket e f m) => MonadBracket e f (PostgresT m)(Monad m) => MonadAsk Pool (PostgresT m)(Monad m) => MonadReader Pool (PostgresT m)(MonadBracket e f m, MonadAff m) => MonadSession (PostgresT m)
#session Source
session :: forall e f m a. MonadBracket e f m => MonadAff m => MonadSession (SessionT m) => SessionT m a -> PostgresT m aLifts a session to PostgresT, releasing the client to the pool
after execution.
#transaction Source
transaction :: forall m a. MonadBracket Error Fiber m => MonadAff m => MonadSession (SessionT m) => SessionT m a -> PostgresT m aLifts a session to PostgresT, running the session
in a transaction.
If the session throws an error, the transaction will be rolled back and the error rethrown.
#runPostgres Source
runPostgres :: forall m a missing trash r e f. MonadBracket e f m => MonadAff m => Union r missing (Config trash) => Record r -> PostgresT m a -> m aCreate a new connection pool from the provided config and execute
the postgres monad, invoking Effect.Aff.Postgres.Pool.end afterwards.
- Modules
- Control.
Monad. Postgres - Control.
Monad. Postgres. Base - Control.
Monad. Postgres. Cursor - Control.
Monad. Postgres. Session - Data.
Postgres - Data.
Postgres. Custom - Data.
Postgres. Custom. Enum - Data.
Postgres. Query - Data.
Postgres. Query. Builder - Data.
Postgres. Range - Data.
Postgres. Raw - Data.
Postgres. Result - Data.
Postgres. Unresult - Effect.
Aff. Postgres. Client - Effect.
Aff. Postgres. Pool - Effect.
Postgres. Client - Effect.
Postgres. Pool