Copyright | © Thor Michael Støre, 2015 |
---|---|
License | GPL v2 without "any later version" clause |
Maintainer | thormichael át gmail døt com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Exports the pertinent parts of HaskRel building on HList records. This gives most features of the relational algebra, relation variable support, HList CommonMain, as well as certain non-relational features such as ordering.
- module Database.HaskRel.Relational.Definition
- data Relvar a = Relvar {}
- relvarType :: Relvar a -> Relation a
- readRelvar :: (Ord (HList b), Read (HList (RecordValuesR b)), RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b) => Relvar b -> IO (Relation b)
- module Database.HaskRel.Relational.Expression
- module Database.HaskRel.Relational.Unicode
- module Database.HaskRel.Order
- module Database.HaskRel.Support
The relational model of database management: A subset thereof
Relation variable reference. This type has a phantom type variable, which generally calls for the type to be explicity specified:
s = Relvar "SuppliersPartsDB/S.rv" :: Relvar '[SNO, SName, Status, City]
Typeable [*] a => Show (Relvar a) Source | |
(Ord (HList b), Read (HList (RecordValuesR b)), Typeable [*] b, RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b, HFoldr (Mapcar HPresentTypedRecAttr) [[String]] (RecordValuesR b) [[String]], HFoldr (Mapcar HPresentRecAttr) [[String]] (RecordValuesR b) [[String]]) => HFWPresent (Relvar b) Source | |
(Ord (HList b), Read (HList (RecordValuesR b)), RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b) => RelAssign (Relvar b) Source | |
(Ord (HList b), Read (HList (RecordValuesR b)), RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b) => MonOp (Relvar b) Source | |
(Ord (HList b), Read (HList (RecordValuesR b)), RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b) => DyaOp (IO (Relation a)) (Relvar b) Source | |
(Ord (HList b), Read (HList (RecordValuesR b)), RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b) => DyaOp (Relation a) (Relvar b) Source | |
(Ord (HList a), Ord (HList b), Read (HList (RecordValuesR a)), Read (HList (RecordValuesR b)), RecordValues a, RecordValues b, HMapAux HList TaggedFn (RecordValuesR a) a, HMapAux HList TaggedFn (RecordValuesR b) b) => DyaOp (Relvar a) (Relvar b) Source | |
(Ord (HList a), Read (HList (RecordValuesR a)), RecordValues a, HMapAux HList TaggedFn (RecordValuesR a) a) => DyaOp (Relvar a) (IO (Relation b)) Source | |
(Ord (HList a), Read (HList (RecordValuesR a)), RecordValues a, HMapAux HList TaggedFn (RecordValuesR a) a) => DyaOp (Relvar a) (Relation b) Source | |
type RelAssignArg (Relvar b) = Relation b Source | |
type DyaOpLeft (Relvar a) = Relation a Source | |
type DyaOpLeft (Relvar a) = Relation a Source | |
type DyaOpLeft (Relvar a) = Relation a Source | |
type DyaOpRight (Relvar b) = Relation b Source | |
type DyaOpRight (Relvar b) = Relation b Source | |
type DyaOpRight (Relvar b) = Relation b Source | |
type MonOpArg (Relvar b) = Relation b Source | |
type MonOpRes (Relvar b) res = IO res | |
type DyaOpRes (IO (Relation a)) (Relvar b) res = IO res | |
type DyaOpRes (Relation a) (Relvar b) res = IO res | |
type DyaOpRes (Relvar a) (Relvar b) res = IO res | |
type DyaOpRes (Relvar a) (IO (Relation b)) res = IO res | |
type DyaOpRes (Relvar a) (Relation b) res = IO res |
relvarType :: Relvar a -> Relation a Source
Gives the type a relvar results in. Note that the value this results in will always be undefined
.
readRelvar :: (Ord (HList b), Read (HList (RecordValuesR b)), RecordValues b, HMapAux HList TaggedFn (RecordValuesR b) b) => Relvar b -> IO (Relation b) Source
Read a relation variable from the file referenced by the first argument
Non-relational features
module Database.HaskRel.Order
module Database.HaskRel.Support