relational-query-0.10.1.0: Typeful, Modular, Relational, algebraic query engine

Copyright2013-2017 Kei Hibino
LicenseBSD3
Maintainerex8k.hibino@gmail.com
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Database.Relational.Monad.Trans.Ordering

Contents

Description

This module defines monad transformer which lift from query into query with ordering.

Synopsis

Transformer into query with ordering

data Orderings c m a Source #

Type to accumulate ordering context. Type c is ordering term record context type.

Instances

MonadPartition c m => MonadPartition c (Orderings c m) Source #

MonadPartition with ordering.

Methods

partitionBy :: Record c r -> Orderings c m () Source #

MonadQualify q m => MonadQualify q (Orderings c m) Source #

MonadQualify with ordering.

Methods

liftQualify :: q a -> Orderings c m a Source #

MonadRestrict rc m => MonadRestrict rc (Orderings c m) Source #

MonadRestrict with ordering.

Methods

restrict :: Predicate rc -> Orderings c m () Source #

MonadTrans (Orderings c) Source # 

Methods

lift :: Monad m => m a -> Orderings c m a #

Monad m => Monad (Orderings c m) Source # 

Methods

(>>=) :: Orderings c m a -> (a -> Orderings c m b) -> Orderings c m b #

(>>) :: Orderings c m a -> Orderings c m b -> Orderings c m b #

return :: a -> Orderings c m a #

fail :: String -> Orderings c m a #

Functor m => Functor (Orderings c m) Source # 

Methods

fmap :: (a -> b) -> Orderings c m a -> Orderings c m b #

(<$) :: a -> Orderings c m b -> Orderings c m a #

Applicative m => Applicative (Orderings c m) Source # 

Methods

pure :: a -> Orderings c m a #

(<*>) :: Orderings c m (a -> b) -> Orderings c m a -> Orderings c m b #

(*>) :: Orderings c m a -> Orderings c m b -> Orderings c m b #

(<*) :: Orderings c m a -> Orderings c m b -> Orderings c m a #

MonadAggregate m => MonadAggregate (Orderings c m) Source #

MonadAggregate with ordering.

MonadQuery m => MonadQuery (Orderings c m) Source #

MonadQuery with ordering.

orderings :: Monad m => m a -> Orderings c m a Source #

Lift to Orderings.

API of query with ordering

orderBy' Source #

Arguments

:: Monad m 
=> Record c t

Ordering terms to add

-> Order

Order direction

-> Nulls

Order of null

-> Orderings c m ()

Result context with ordering

Add ordering terms with null ordering.

orderBy Source #

Arguments

:: Monad m 
=> Record c t

Ordering terms to add

-> Order

Order direction

-> Orderings c m ()

Result context with ordering

Add ordering terms.

asc Source #

Arguments

:: Monad m 
=> Record c t

Ordering terms to add

-> Orderings c m ()

Result context with ordering

Add ascendant ordering term.

desc Source #

Arguments

:: Monad m 
=> Record c t

Ordering terms to add

-> Orderings c m ()

Result context with ordering

Add descendant ordering term.

Result

extractOrderingTerms :: (Monad m, Functor m) => Orderings c m a -> m (a, [OrderingTerm]) Source #

Run Orderings to get OrderingTerms