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

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

Database.Relational.Query.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 #

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

Instances

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

MonadPartition with ordering.

Methods

partitionBy :: Projection c r -> Orderings c m () #

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

MonadQualify with ordering.

Methods

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

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

MonadRestrict with ordering.

Methods

restrict :: Projection rc (Maybe Bool) -> Orderings c m () #

MonadTrans (Orderings c) # 

Methods

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

Monad m => Monad (Orderings c m) # 

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) # 

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) # 

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) #

MonadAggregate with ordering.

MonadQuery m => MonadQuery (Orderings c m) #

MonadQuery with ordering.

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

Lift to Orderings.

API of query with ordering

orderBy' #

Arguments

:: (Monad m, ProjectableOrdering (Projection c)) 
=> Projection 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 #

Arguments

:: (Monad m, ProjectableOrdering (Projection c)) 
=> Projection c t

Ordering terms to add

-> Order

Order direction

-> Orderings c m ()

Result context with ordering

Add ordering terms.

asc #

Arguments

:: (Monad m, ProjectableOrdering (Projection c)) 
=> Projection c t

Ordering terms to add

-> Orderings c m ()

Result context with ordering

Add ascendant ordering term.

desc #

Arguments

:: (Monad m, ProjectableOrdering (Projection c)) 
=> Projection 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]) #

Run Orderings to get OrderingTerms