Copyright | 2015-2017 Kei Hibino |
---|---|
License | BSD3 |
Maintainer | [email protected] |
Stability | experimental |
Portability | unknown |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Database.Relational.Monad.BaseType
Description
This module defines base monad type to build queries.
Synopsis
- type ConfigureQuery = Qualify (QueryConfig Identity)
- configureQuery :: ConfigureQuery q -> Config -> q
- qualifyQuery :: a -> ConfigureQuery (Qualified a)
- askConfig :: ConfigureQuery Config
- data Relation p r
- unsafeTypeRelation :: ConfigureQuery SubQuery -> Relation p r
- untypeRelation :: Relation p r -> ConfigureQuery SubQuery
- relationWidth :: Relation p r -> PersistableRecordWidth r
- dump :: Relation p r -> String
- sqlFromRelationWith :: Relation p r -> Config -> StringSQL
- sqlFromRelation :: Relation p r -> StringSQL
- rightPh :: Relation ((), p) r -> Relation p r
- leftPh :: Relation (p, ()) r -> Relation p r
Base monad type to build queries
type ConfigureQuery = Qualify (QueryConfig Identity) Source #
Thin monad type for untyped structure.
configureQuery :: ConfigureQuery q -> Config -> q Source #
Run ConfigureQuery
monad with initial state to get only result.
qualifyQuery :: a -> ConfigureQuery (Qualified a) Source #
Get qualifyed table form query.
askConfig :: ConfigureQuery Config Source #
Read configuration.
Relation type
Relation type with place-holder parameter p
and query result type r
.
unsafeTypeRelation :: ConfigureQuery SubQuery -> Relation p r Source #
Unsafely type qualified subquery into record typed relation type.
untypeRelation :: Relation p r -> ConfigureQuery SubQuery Source #
Sub-query Qualify monad from relation.
relationWidth :: Relation p r -> PersistableRecordWidth r Source #
PersistableRecordWidth
of Relation
type.
sqlFromRelationWith :: Relation p r -> Config -> StringSQL Source #
Generate SQL string from Relation
with configuration.