Copyright | 2013 Kei Hibino |
---|---|
License | BSD3 |
Maintainer | ex8k.hibino@gmail.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
This module provides untyped components for query.
- type ColumnSQL = ColumnSQL' StringSQL
- columnSQL :: String -> ColumnSQL
- columnSQL' :: StringSQL -> ColumnSQL
- showsColumnSQL :: ColumnSQL -> StringSQL
- data Config
- defaultConfig :: Config
- data ProductUnitSupport
- data Duplication
- showsDuplication :: Duplication -> StringSQL
- type QueryRestriction c = [Expr c Bool]
- composeWhere :: QueryRestriction Flat -> StringSQL
- composeHaving :: QueryRestriction Aggregated -> StringSQL
- type AggregateColumnRef = ColumnSQL
- data AggregateBitKey
- data AggregateSet
- data AggregateElem
- aggregateColumnRef :: AggregateColumnRef -> AggregateElem
- aggregateEmpty :: [AggregateElem]
- aggregatePowerKey :: [AggregateColumnRef] -> AggregateBitKey
- aggregateGroupingSet :: [AggregateElem] -> AggregateSet
- aggregateRollup :: [AggregateBitKey] -> AggregateElem
- aggregateCube :: [AggregateBitKey] -> AggregateElem
- aggregateSets :: [AggregateSet] -> AggregateElem
- composeGroupBy :: [AggregateElem] -> StringSQL
- composePartitionBy :: [AggregateColumnRef] -> StringSQL
- data Order
- type OrderColumn = ColumnSQL
- type OrderingTerm = (Order, OrderColumn)
- type OrderingTerms = [OrderingTerm]
- composeOrderBy :: OrderingTerms -> StringSQL
- type AssignColumn = ColumnSQL
- type AssignTerm = ColumnSQL
- type Assignment = (AssignColumn, AssignTerm)
- type Assignments = [Assignment]
- composeSets :: Assignments -> StringSQL
- composeOver :: [AggregateColumnRef] -> OrderingTerms -> StringSQL
Type for column SQL string
columnSQL' :: StringSQL -> ColumnSQL Source
ColumnSQL
from StringSQL
showsColumnSQL :: ColumnSQL -> StringSQL Source
StringSQL from ColumnSQL
Configuration type for query
defaultConfig :: Config Source
Default configuration.
data ProductUnitSupport Source
Unit of product is supported or not.
Duplication attribute
showsDuplication :: Duplication -> StringSQL Source
Compose duplication attribute string.
Query restriction
type QueryRestriction c = [Expr c Bool] Source
Type for restriction of query.
composeWhere :: QueryRestriction Flat -> StringSQL Source
Compose WHERE clause from QueryRestriction
.
composeHaving :: QueryRestriction Aggregated -> StringSQL Source
Compose HAVING clause from QueryRestriction
.
Types for aggregation
type AggregateColumnRef = ColumnSQL Source
Type for group-by term
data AggregateElem Source
Type for group-by tree
Show AggregateElem | |
MonadQualify ConfigureQuery QueryAggregate | Instance to lift from qualified table forms into |
MonadRestrict c m => MonadRestrict c (AggregatingSetT m) | Aggregated |
MonadQuery m => MonadAggregate (AggregatingSetT m) | Aggregated query instance. |
MonadQuery m => MonadQuery (AggregatingSetT m) | Aggregated |
aggregateColumnRef :: AggregateColumnRef -> AggregateElem Source
Single term aggregation element.
aggregateEmpty :: [AggregateElem] Source
Empty aggregation.
aggregatePowerKey :: [AggregateColumnRef] -> AggregateBitKey Source
Key of aggregation power set.
aggregateGroupingSet :: [AggregateElem] -> AggregateSet Source
Single grouping set.
aggregateRollup :: [AggregateBitKey] -> AggregateElem Source
Rollup aggregation element.
aggregateCube :: [AggregateBitKey] -> AggregateElem Source
Cube aggregation element.
aggregateSets :: [AggregateSet] -> AggregateElem Source
Grouping sets aggregation.
composeGroupBy :: [AggregateElem] -> StringSQL Source
Compose GROUP BY clause from AggregateElem list.
composePartitionBy :: [AggregateColumnRef] -> StringSQL Source
Compose PARTITION BY clause from AggregateColumnRef list.
Types for ordering
type OrderColumn = ColumnSQL Source
Type for order-by column
type OrderingTerm = (Order, OrderColumn) Source
Type for order-by term
type OrderingTerms = [OrderingTerm] Source
Type for order-by terms
composeOrderBy :: OrderingTerms -> StringSQL Source
Compose ORDER BY clause from OrderingTerms
Types for assignments
type AssignColumn = ColumnSQL Source
Column SQL String
type AssignTerm = ColumnSQL Source
Value SQL String
type Assignment = (AssignColumn, AssignTerm) Source
Assignment pair
type Assignments = [Assignment] Source
Assignment pair list.
composeSets :: Assignments -> StringSQL Source
Compose SET clause from Assignments
.
Compose window clause
composeOver :: [AggregateColumnRef] -> OrderingTerms -> StringSQL Source
Compose OVER (PARTITION BY ... ) clause.