persistable-record-0.0.1.3: Binding between SQL database values and haskell records.

Portabilityunknown
Stabilityexperimental
Maintainerex8k.hibino@gmail.com
Safe HaskellSafe-Inferred

Database.Record.KeyConstraint

Contents

Description

This module provides proof object definitions of table constraint specifiey by keys.

Synopsis

Constraint specified by keys

data ColumnConstraint c r Source

Proof object to specify table constraint for table record type r and constraint c specified by a single column.

index :: ColumnConstraint c r -> IntSource

Index of key which specifies table constraint.

unsafeSpecifyColumnConstraintSource

Arguments

:: Int

Key index which specify this constraint

-> ColumnConstraint c r

Result constraint proof object

Unsafely generate ColumnConstraint proof object using specified key index.

data Unique Source

Constraint type. Unique key.

type UniqueColumnConstraint = ColumnConstraint UniqueSource

Specialized unique constraint.

type NotNullColumnConstraint = ColumnConstraint NotNullSource

Specialized not-null constraint.

data Primary Source

Constraint type. Primary key.

type PrimaryColumnConstraint = ColumnConstraint PrimarySource

Specialized primary constraint.

data KeyConstraint c r Source

Proof object to specify table constraint for table record type r and constraint c. Constraint is specified by composite key.

indexes :: KeyConstraint c r -> [Int]Source

Index of key which specifies table constraint.

unsafeSpecifyKeyConstraintSource

Arguments

:: [Int]

Key index which specify this constraint

-> KeyConstraint c r

Result constraint proof object

Unsafely generate KeyConstraint proof object using specified key indexes.

type UniqueConstraint = KeyConstraint UniqueSource

Specialized unique constraint.

type PrimaryConstraint = KeyConstraint PrimarySource

Specialized primary constraint.

Deriviations

uniqueColumn :: PrimaryColumnConstraint r -> UniqueColumnConstraint rSource

Derivation rule for UniqueColumnConstraint. Derive Unique from Primary.

notNullColumn :: PrimaryColumnConstraint r -> NotNullColumnConstraint rSource

Derivation rule for NotNullColumnConstraint. Derive NotNull from Primary.

unsafeSpecifyNotNullValue :: NotNullColumnConstraint aSource

Unsafely generate NotNullColumnConstraint proof object of single column value.

Inferences

derivedUniqueColumnConstraint :: HasColumnConstraint Primary r => UniqueColumnConstraint rSource

Inferred UniqueColumnConstraint proof object. Record type r has unique key which is derived r has primary key.

derivedNotNullColumnConstraint :: HasColumnConstraint Primary r => NotNullColumnConstraint rSource

Inferred NotNullColumnConstraint proof object. Record type r has not-null key which is derived r has primary key.

class HasKeyConstraint c a whereSource

Interface of inference rule for KeyConstraint proof object.

Methods

keyConstraint :: KeyConstraint c aSource

Infer ColumnConstraint proof object.

derivedCompositePrimary :: HasColumnConstraint Primary r => PrimaryConstraint rSource

Inferred PrimaryConstraint proof object. Record type r has composite primary key which is derived r has single column primary key.

derivedUniqueConstraint :: HasKeyConstraint Primary r => UniqueConstraint rSource

Inferred UniqueConstraint proof object. Record type r has unique key which is derived r has primary key.