servant-db-postgresql-0.2.2.0: Derive a postgres client to database API specified by servant-db

Safe HaskellNone
LanguageHaskell2010

Servant.DB.PostgreSQL.Variadic

Synopsis

Documentation

newtype Variadic a Source #

Constructors

Variadic 

Fields

Instances

Functor Variadic Source # 

Methods

fmap :: (a -> b) -> Variadic a -> Variadic b #

(<$) :: a -> Variadic b -> Variadic a #

Eq a => Eq (Variadic a) Source # 

Methods

(==) :: Variadic a -> Variadic a -> Bool #

(/=) :: Variadic a -> Variadic a -> Bool #

Ord a => Ord (Variadic a) Source # 

Methods

compare :: Variadic a -> Variadic a -> Ordering #

(<) :: Variadic a -> Variadic a -> Bool #

(<=) :: Variadic a -> Variadic a -> Bool #

(>) :: Variadic a -> Variadic a -> Bool #

(>=) :: Variadic a -> Variadic a -> Bool #

max :: Variadic a -> Variadic a -> Variadic a #

min :: Variadic a -> Variadic a -> Variadic a #

Read a => Read (Variadic a) Source # 
Show a => Show (Variadic a) Source # 

Methods

showsPrec :: Int -> Variadic a -> ShowS #

show :: Variadic a -> String #

showList :: [Variadic a] -> ShowS #

(ToField a, HasDB api m) => HasDB ((:>) * * (ArgPos (Variadic a)) api) m Source #

Deriving call to DB procedure with positional variadic arguments

type API = ArgPos (Variadic Int) :> Procedure "mleast" (Only Int)

data MyMonad m a -- Your application monad with connection pool and logger
instance HasPostgres m
instance MonadLogger m

dbMleast :: Variadic Int -> MyMonad (Only Int)
dbMleast = deriveDB (Proxy :: Proxy API) (Proxy :: Proxy MyMonad)

Upper example will derive the following SQL call:

>>> SELECT * FROM mleast(VARIADIC ?) AS t;

Associated Types

type DB ((:>) * * (ArgPos (Variadic a)) api) (m :: * -> *) :: * Source #

Methods

deriveDBWithCtx :: Proxy * ((* :> *) (ArgPos (Variadic a)) api) -> Proxy (* -> *) m -> QueryContext ToField -> DB ((* :> *) (ArgPos (Variadic a)) api) m Source #

(KnownSymbol n, ToField a, HasDB api m) => HasDB ((:>) * * (ArgNamed n (Variadic a)) api) m Source #

Deriving call to DB procedure with named variadic arguments

type API = ArgNamed "arr" (Variadic Int) :> Procedure "mleast" (Only Int)

data MyMonad m a -- Your application monad with connection pool and logger
instance HasPostgres m
instance MonadLogger m

dbMleast :: Variadic Int -> MyMonad (Only Int)
dbMleast = deriveDB (Proxy :: Proxy API) (Proxy :: Proxy MyMonad)

Upper example will derive the following SQL call:

>>> SELECT * FROM mleast(VARIADIC "arr" => ?) AS t;

Associated Types

type DB ((:>) * * (ArgNamed n (Variadic a)) api) (m :: * -> *) :: * Source #

Methods

deriveDBWithCtx :: Proxy * ((* :> *) (ArgNamed n (Variadic a)) api) -> Proxy (* -> *) m -> QueryContext ToField -> DB ((* :> *) (ArgNamed n (Variadic a)) api) m Source #

type DB ((:>) * * (ArgPos (Variadic a)) api) m Source # 
type DB ((:>) * * (ArgPos (Variadic a)) api) m = Variadic a -> DB api m
type DB ((:>) * * (ArgNamed n (Variadic a)) api) m Source # 
type DB ((:>) * * (ArgNamed n (Variadic a)) api) m = Variadic a -> DB api m

newtype PGArray a :: * -> * #

Wrap a list for use as a PostgreSQL array.

Constructors

PGArray 

Fields

Instances

Functor PGArray 

Methods

fmap :: (a -> b) -> PGArray a -> PGArray b #

(<$) :: a -> PGArray b -> PGArray a #

Eq a => Eq (PGArray a) 

Methods

(==) :: PGArray a -> PGArray a -> Bool #

(/=) :: PGArray a -> PGArray a -> Bool #

Ord a => Ord (PGArray a) 

Methods

compare :: PGArray a -> PGArray a -> Ordering #

(<) :: PGArray a -> PGArray a -> Bool #

(<=) :: PGArray a -> PGArray a -> Bool #

(>) :: PGArray a -> PGArray a -> Bool #

(>=) :: PGArray a -> PGArray a -> Bool #

max :: PGArray a -> PGArray a -> PGArray a #

min :: PGArray a -> PGArray a -> PGArray a #

Read a => Read (PGArray a) 
Show a => Show (PGArray a) 

Methods

showsPrec :: Int -> PGArray a -> ShowS #

show :: PGArray a -> String #

showList :: [PGArray a] -> ShowS #

(FromField a, Typeable * a) => FromField (PGArray a)

any postgresql array whose elements are compatible with type a

ToField a => ToField (PGArray a) 

Methods

toField :: PGArray a -> Action #