data-basic-0.2.0.2: A database library with a focus on ease of use, type safety and useful error messages

Safe HaskellNone
LanguageHaskell2010

Internal.Control.Effects.Basic

Synopsis

Documentation

newtype Basic Source #

Constructors

RunSql Type 

newtype SqlRequest a Source #

Constructors

SqlRequest 

Instances

Show (SqlRequest k a) Source # 

Methods

showsPrec :: Int -> SqlRequest k a -> ShowS #

show :: SqlRequest k a -> String #

showList :: [SqlRequest k a] -> ShowS #

handleBasic :: Functor m => (forall b. FromRow b => SqlRequest b -> m [b]) -> EffectHandler Basic m a -> m a Source #

handleBasicPsql :: MonadIO m => Connection -> EffectHandler Basic m a -> m a Source #

Handles SQL by querying a PostgreSQL database.

type family AllTables tables where ... Source #

Equations

AllTables '[x] = x 
AllTables (x ': xs) = x :. AllTables xs 

class FromRow (AllTables ts) => AllHaveFromRowInstance ts where Source #

Minimal complete definition

compositeToTuple

Methods

compositeToTuple :: proxy ts -> AllTables ts -> DbResult ts Source #

Instances

(FromRow a, FromRow b, FromRow c) => AllHaveFromRowInstance ((:) * a ((:) * b ((:) * c ([] *)))) Source # 

Methods

compositeToTuple :: proxy ((* ': a) ((* ': b) ((* ': c) [*]))) -> AllTables ((* ': a) ((* ': b) ((* ': c) [*]))) -> DbResult ((* ': a) ((* ': b) ((* ': c) [*]))) Source #

(FromRow a, FromRow b) => AllHaveFromRowInstance ((:) * a ((:) * b ([] *))) Source # 

Methods

compositeToTuple :: proxy ((* ': a) ((* ': b) [*])) -> AllTables ((* ': a) ((* ': b) [*])) -> DbResult ((* ': a) ((* ': b) [*])) Source #

FromRow a => AllHaveFromRowInstance ((:) * a ([] *)) Source # 

Methods

compositeToTuple :: proxy ((* ': a) [*]) -> AllTables ((* ': a) [*]) -> DbResult ((* ': a) [*]) Source #

type family WithoutOnly a where ... Source #

Equations

WithoutOnly (Only a) = a 
WithoutOnly a = a 

class NoOnly a where Source #

Minimal complete definition

noOnly

Methods

noOnly :: a -> WithoutOnly a Source #

Instances

(~) * (WithoutOnly a) a => NoOnly a Source # 

Methods

noOnly :: a -> WithoutOnly a Source #

NoOnly (Only a) Source # 

Methods

noOnly :: Only a -> WithoutOnly (Only a) Source #

runMapStatement :: forall res m f. (MonadEffect Basic m, FromRow res, NoOnly res) => DbStatement f '[res] -> m [WithoutOnly res] Source #