haskelldb-2.1.1: A library of combinators for generating and executing SQL statements.

Portabilitynon-portable
Stabilityexperimental
Maintainerhaskelldb-users@lists.sourceforge.net

Database.HaskellDB.DBLayout

Description

Exports every function needed by DBDirect generated files

Synopsis

Documentation

data Expr a Source

Type of normal expressions, contains the untyped PrimExpr.

Instances

ProjectExpr Expr 
InsertExpr Expr 
ExprC Expr 
Read (Expr a) 
Show (Expr a) 
IsExpr (Expr a) 
Args (Expr a) 
ExprType a => ExprType (Expr a) 
BStrToStr (Expr String) (Expr String) 
BStrToStr (Expr (Maybe String)) (Expr (Maybe String)) 
Size n => BStrToStr (Expr (Maybe (BoundedString n))) (Expr (Maybe String)) 
Size n => BStrToStr (Expr (BoundedString n)) (Expr String) 
IsExpr tail => IsExpr (Expr a -> tail) 
Args (Expr a -> ExprAggr c) 
(IsExpr tail, Args tail) => Args (Expr a -> tail) 
HasField f r => Select (Attr f a) (Rel r) (Expr a)

Field selection operator. It is overloaded to work for both relations in a query and the result of a query. That is, it corresponds to both ! and !. from the original HaskellDB. An overloaded operator was selected because users (and the developers) always forgot to use !. instead of ! on query results.

(RelToRec rest, FieldTag f) => RelToRec (RecCons f (Expr a) rest) 
(ShowConstant a, ConstantRecord r cr) => ConstantRecord (RecCons f a r) (RecCons f (Expr a) cr) 
(ProjectExpr e, ProjectRec r er) => ProjectRec (RecCons f (e a) r) (RecCons f (Expr a) er) 
(InsertExpr e, InsertRec r er) => InsertRec (RecCons f (e a) r) (RecCons f (Expr a) er) 
(GetValue a, GetRec er vr) => GetRec (RecCons f (Expr a) er) (RecCons f a vr) 

data Table r Source

Basic tables, contains table name and an association from attributes to attribute names in the real table.

data Attr f a Source

Typed attributes

Instances

HasField f r => Select (Attr f a) (Rel r) (Expr a)

Field selection operator. It is overloaded to work for both relations in a query and the result of a query. That is, it corresponds to both ! and !. from the original HaskellDB. An overloaded operator was selected because users (and the developers) always forgot to use !. instead of ! on query results.

data RecCons f a b Source

Constructor that adds a field to a record. f is the field tag, a is the field value and b is the rest of the record.

Instances

HasField f r => HasField f (RecCons g a r) 
HasField f (RecCons f a r) 
SetField f r a => SetField f (RecCons g b r) a 
SetField f (RecCons f a r) a 
SelectField f r a => SelectField f (RecCons g b r) a 
SelectField f (RecCons f a r) a 
(Eq a, Eq b) => Eq (RecCons f a b) 
(Ord a, Ord b) => Ord (RecCons f a b) 
(FieldTag a, Read b, ReadRecRow c) => Read (RecCons a b c) 
(FieldTag a, Show b, ShowRecRow c) => Show (RecCons a b c) 
(FieldTag a, Read b, ReadRecRow c) => ReadRecRow (RecCons a b c) 
(FieldTag a, Show b, ShowRecRow c) => ShowRecRow (RecCons a b c) 
(FieldTag f, ShowLabels r) => ShowLabels (RecCons f a r) 
(ExprC e, ToPrimExprs r) => ToPrimExprs (RecCons l (e a) r) 
(RelToRec rest, FieldTag f) => RelToRec (RecCons f (Expr a) rest) 
(ExprType e, ExprTypes r) => ExprTypes (RecCons f e r) 
RecCat r1 r2 r3 => RecCat (RecCons f a r1) r2 (RecCons f a r3) 
(ShowConstant a, ConstantRecord r cr) => ConstantRecord (RecCons f a r) (RecCons f (Expr a) cr) 
(ProjectExpr e, ProjectRec r er) => ProjectRec (RecCons f (e a) r) (RecCons f (Expr a) er) 
(InsertExpr e, InsertRec r er) => InsertRec (RecCons f (e a) r) (RecCons f (Expr a) er) 
(GetValue a, GetRec er vr) => GetRec (RecCons f (Expr a) er) (RecCons f a vr) 

data RecNil Source

The empty record.

class FieldTag f whereSource

Class for field labels.

Methods

fieldName :: f -> StringSource

Gets the name of the label.

hdbMakeEntrySource

Arguments

:: FieldTag f 
=> f

Field tag

-> Record (RecCons f (Expr a) RecNil) 

Constructs a table entry from a field tag

mkAttrSource

Arguments

:: FieldTag f 
=> f

Field tag

-> Attr f a 

Make an Attr for a field.

(#)Source

Arguments

:: Record (RecCons f a RecNil)

Field to add

-> (b -> c)

Rest of record

-> b -> RecCons f a c

New record

Adds the field from a one-field record to another record.

emptyTable :: TableName -> Table (Record RecNil)Source

For queries against fake tables, such as 'information_schema.information_schema_catalog_name'. Useful for constructing queries that contain constant data (and do not select from columns) but need a table to select from.