| Copyright | 2017 Kei Hibino |
|---|---|
| License | BSD3 |
| Maintainer | ex8k.hibino@gmail.com |
| Stability | experimental |
| Portability | unknown |
| Safe Haskell | None |
| Language | Haskell2010 |
Database.Relational.Sequence
Description
This module provides structures about sequence tables.
- data Sequence s i = Sequence {
- seqTable :: Table s
- seqExtract :: s -> i
- seqKey :: Pi s i
- seqRelation :: TableDerivable s => Sequence s i -> Relation () s
- unsafeSpecifySequence :: TableDerivable s => (s -> i) -> Pi s i -> Sequence s i
- class TableDerivable s => SequenceDerivable s i | s -> i where
- class (TableDerivable r, SequenceDerivable s i) => Binding r s i | r -> s where
- fromRelation :: Binding r s i => Relation () r -> Sequence s i
- data Number r i
- unsafeSpecifyNumber :: Binding r s i => i -> Number r i
- extractNumber :: Number r i -> i
- ($$!) :: (i -> r) -> Number r i -> r
- ($$) :: Binding r s i => (i -> r) -> Number r i -> r
- updateNumber :: (PersistableWidth s, Integral i, ShowConstantTermsSQL i) => i -> Sequence s i -> Update ()
Documentation
Basic record to express sequence table
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
Methods
derivedSequence :: Sequence s i Source #
class (TableDerivable r, SequenceDerivable s i) => Binding r s i | r -> s where Source #
Sequence number type for record type r
unsafeSpecifyNumber :: Binding r s i => i -> Number r i Source #
Unsafely specify sequence number.
extractNumber :: Number r i -> i Source #
Get untyped sequence number.
Arguments
| :: (i -> r) | sequence number should be passed to proper field of record |
| -> Number r i | |
| -> r |
Unsafely apply sequence number.
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.
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