squeal-postgresql-0.6.0.1: Squeal PostgreSQL Library

Copyright(c) Eitan Chatav 2019
Maintainereitan@morphism.tech
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Squeal.PostgreSQL.Session

Description

Using Squeal in your application will come down to defining the db of your database and including PQ db db in your application's monad transformer stack, giving it an instance of MonadPQ.

Synopsis

Documentation

newtype PQ (db0 :: SchemasType) (db1 :: SchemasType) (m :: Type -> Type) (x :: Type) Source #

We keep track of the schema via an Atkey indexed state monad transformer, PQ.

Constructors

PQ 

Fields

Instances
IndexedMonadTransPQ PQ Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

define :: MonadIO io => Definition db0 db1 -> PQ db0 db1 io () Source #

IndexedMonadTrans PQ Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

pqAp :: Monad m => PQ i j m (x -> y) -> PQ j k m x -> PQ i k m y Source #

pqJoin :: Monad m => PQ i j m (PQ j k m y) -> PQ i k m y Source #

pqBind :: Monad m => (x -> PQ j k m y) -> PQ i j m x -> PQ i k m y Source #

pqThen :: Monad m => PQ j k m y -> PQ i j m x -> PQ i k m y Source #

pqAndThen :: Monad m => (y -> PQ j k m z) -> (x -> PQ i j m y) -> x -> PQ i k m z Source #

Migratory Definition (Indexed PQ IO ()) Source #

pure migrations

Instance details

Defined in Squeal.PostgreSQL.Session.Migration

Methods

runMigrations :: Path (Migration Definition) db0 db1 -> Indexed PQ IO () db0 db1 Source #

db0 ~ db1 => MFunctor (PQ db0 db1 :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

hoist :: Monad m => (forall a. m a -> n a) -> PQ db0 db1 m b -> PQ db0 db1 n b #

Migratory (IsoQ Definition) (IsoQ (Indexed PQ IO ())) Source #

pure rewindable migrations

Instance details

Defined in Squeal.PostgreSQL.Session.Migration

Methods

runMigrations :: Path (Migration (IsoQ Definition)) db0 db1 -> IsoQ (Indexed PQ IO ()) db0 db1 Source #

Migratory (IsoQ (Indexed PQ IO ())) (IsoQ (Indexed PQ IO ())) Source #

impure rewindable migrations

Instance details

Defined in Squeal.PostgreSQL.Session.Migration

Methods

runMigrations :: Path (Migration (IsoQ (Indexed PQ IO ()))) db0 db1 -> IsoQ (Indexed PQ IO ()) db0 db1 Source #

(MonadIO io, db0 ~ db, db1 ~ db) => MonadPQ db (PQ db0 db1 io) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

executeParams :: Statement db x y -> x -> PQ db0 db1 io (Result y) Source #

executeParams_ :: Statement db x () -> x -> PQ db0 db1 io () Source #

execute :: Statement db () y -> PQ db0 db1 io (Result y) Source #

execute_ :: Statement db () () -> PQ db0 db1 io () Source #

executePrepared :: Traversable list => Statement db x y -> list x -> PQ db0 db1 io (list (Result y)) Source #

executePrepared_ :: Foldable list => Statement db x () -> list x -> PQ db0 db1 io () Source #

Migratory (OpQ Definition) (OpQ (Indexed PQ IO ())) Source #

pure rewinds

Instance details

Defined in Squeal.PostgreSQL.Session.Migration

Methods

runMigrations :: Path (Migration (OpQ Definition)) db0 db1 -> OpQ (Indexed PQ IO ()) db0 db1 Source #

Migratory (OpQ (Indexed PQ IO ())) (OpQ (Indexed PQ IO ())) Source #

impure rewinds

Instance details

Defined in Squeal.PostgreSQL.Session.Migration

Methods

runMigrations :: Path (Migration (OpQ (Indexed PQ IO ()))) db0 db1 -> OpQ (Indexed PQ IO ()) db0 db1 Source #

Migratory (Indexed PQ IO ()) (Indexed PQ IO ()) Source #

impure migrations

Instance details

Defined in Squeal.PostgreSQL.Session.Migration

Methods

runMigrations :: Path (Migration (Indexed PQ IO ())) db0 db1 -> Indexed PQ IO () db0 db1 Source #

db0 ~ db1 => MonadTrans (PQ db0 db1) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

lift :: Monad m => m a -> PQ db0 db1 m a #

db0 ~ db1 => MMonad (PQ db0 db1) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

embed :: Monad n => (forall a. m a -> PQ db0 db1 n a) -> PQ db0 db1 m b -> PQ db0 db1 n b #

(Monad m, db0 ~ db1) => Monad (PQ db0 db1 m) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

(>>=) :: PQ db0 db1 m a -> (a -> PQ db0 db1 m b) -> PQ db0 db1 m b #

(>>) :: PQ db0 db1 m a -> PQ db0 db1 m b -> PQ db0 db1 m b #

return :: a -> PQ db0 db1 m a #

fail :: String -> PQ db0 db1 m a #

Monad m => Functor (PQ db0 db1 m) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

fmap :: (a -> b) -> PQ db0 db1 m a -> PQ db0 db1 m b #

(<$) :: a -> PQ db0 db1 m b -> PQ db0 db1 m a #

(Monad m, db0 ~ db1) => MonadFail (PQ db0 db1 m) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

fail :: String -> PQ db0 db1 m a #

(Monad m, db0 ~ db1) => Applicative (PQ db0 db1 m) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

pure :: a -> PQ db0 db1 m a #

(<*>) :: PQ db0 db1 m (a -> b) -> PQ db0 db1 m a -> PQ db0 db1 m b #

liftA2 :: (a -> b -> c) -> PQ db0 db1 m a -> PQ db0 db1 m b -> PQ db0 db1 m c #

(*>) :: PQ db0 db1 m a -> PQ db0 db1 m b -> PQ db0 db1 m b #

(<*) :: PQ db0 db1 m a -> PQ db0 db1 m b -> PQ db0 db1 m a #

(MonadIO m, schema0 ~ schema1) => MonadIO (PQ schema0 schema1 m) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

liftIO :: IO a -> PQ schema0 schema1 m a #

(MonadUnliftIO m, db0 ~ db1) => MonadUnliftIO (PQ db0 db1 m) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

withRunInIO :: ((forall a. PQ db0 db1 m a -> IO a) -> IO b) -> PQ db0 db1 m b #

(Monad m, Semigroup r, db0 ~ db1) => Semigroup (PQ db0 db1 m r) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

(<>) :: PQ db0 db1 m r -> PQ db0 db1 m r -> PQ db0 db1 m r #

sconcat :: NonEmpty (PQ db0 db1 m r) -> PQ db0 db1 m r #

stimes :: Integral b => b -> PQ db0 db1 m r -> PQ db0 db1 m r #

(Monad m, Monoid r, db0 ~ db1) => Monoid (PQ db0 db1 m r) Source # 
Instance details

Defined in Squeal.PostgreSQL.Session

Methods

mempty :: PQ db0 db1 m r #

mappend :: PQ db0 db1 m r -> PQ db0 db1 m r -> PQ db0 db1 m r #

mconcat :: [PQ db0 db1 m r] -> PQ db0 db1 m r #

runPQ :: Functor m => PQ db0 db1 m x -> K Connection db0 -> m (x, K Connection db1) Source #

Run a PQ and keep the result and the Connection.

execPQ :: Functor m => PQ db0 db1 m x -> K Connection db0 -> m (K Connection db1) Source #

Execute a PQ and discard the result but keep the Connection.

evalPQ :: Functor m => PQ db0 db1 m x -> K Connection db0 -> m x Source #

Evaluate a PQ and discard the Connection but keep the result.

withConnection :: forall db0 db1 io x. MonadUnliftIO io => ByteString -> PQ db0 db1 io x -> io x Source #

Do connectdb and finish before and after a computation.