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

Copyright2017 Kei Hibino
LicenseBSD3
Maintainerex8k.hibino@gmail.com
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Database.Relational.Sequence

Description

This module provides structures about sequence tables.

Synopsis

Documentation

data Sequence s i Source #

Basic record to express sequence table

Constructors

Sequence 

Fields

seqRelation :: TableDerivable s => Sequence s i -> Relation () s Source #

Infer Relation of sequence table

unsafeSpecifySequence :: TableDerivable s => (s -> i) -> Pi s i -> Sequence s i Source #

Unsafely specify sequence table.

class TableDerivable s => SequenceDerivable s i | s -> i where Source #

Sequence derivation rule

Minimal complete definition

derivedSequence

class (TableDerivable r, SequenceDerivable s i) => Binding r s i | r -> s where Source #

Derivation rule for binding between Table and Sequence

Methods

fromTable :: Table r -> Sequence s i Source #

fromRelation :: Binding r s i => Relation () r -> Sequence s i Source #

Derive Sequence from corresponding Relation

data Number r i Source #

Sequence number type for record type r

Instances

Eq i => Eq (Number r i) Source # 

Methods

(==) :: Number r i -> Number r i -> Bool #

(/=) :: Number r i -> Number r i -> Bool #

Ord i => Ord (Number r i) Source # 

Methods

compare :: Number r i -> Number r i -> Ordering #

(<) :: Number r i -> Number r i -> Bool #

(<=) :: Number r i -> Number r i -> Bool #

(>) :: Number r i -> Number r i -> Bool #

(>=) :: Number r i -> Number r i -> Bool #

max :: Number r i -> Number r i -> Number r i #

min :: Number r i -> Number r i -> Number r i #

Show i => Show (Number r i) Source # 

Methods

showsPrec :: Int -> Number r i -> ShowS #

show :: Number r i -> String #

showList :: [Number r i] -> ShowS #

unsafeSpecifyNumber :: Binding r s i => i -> Number r i Source #

Unsafely specify sequence number.

extractNumber :: Number r i -> i Source #

Get untyped sequence number.

($$!) Source #

Arguments

:: (i -> r)

sequence number should be passed to proper field of record

-> Number r i 
-> r 

Unsafely apply sequence number.

($$) Source #

Arguments

:: Binding r s i 
=> (i -> r)

sequence number should be passed to proper field of record

-> Number r i 
-> r 

Unsafely apply sequence number. Only safe to build corresponding record type.

updateNumber Source #

Arguments

:: (PersistableWidth s, Integral i, ShowConstantTermsSQL i) 
=> i

sequence number to set. expect not SQL injectable.

-> Sequence s i

sequence table

-> Update () 

Update statement for sequence table