| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Opaleye.Table
Description
Columns can be required or optional and, independently, nullable or non-nullable.
A required non-nullable PGInt4 (for example) is created with
 required and gives rise to a
TableColumns (Column PGInt4) (Column PGInt4)
The leftmost argument is the type of writes. When you insert or
 update into this column you must give it a Column PGInt4 (which you
 can create with pgInt4 :: Int -> Column PGInt4).
A required nullable PGInt4 is created with required and gives rise
 to a
TableColumns (Column (Nullable PGInt4)) (Column (Nullable PGInt4))
When you insert or update into this column you must give it a Column
 (Nullable PGInt4), which you can create either with pgInt4 and
 toNullable :: Column a -> Column (Nullable a), or with null ::
 Column (Nullable a).
An optional non-nullable PGInt4 is created with optional and gives
 rise to a
TableColumns (Maybe (Column PGInt4)) (Column PGInt4)
Optional columns are those that can be omitted on writes, such as
 those that have DEFAULTs or those that are SERIAL.
 When you insert or update into this column you must give it a Maybe
 (Column PGInt4). If you provide Nothing then the column will be
 omitted from the query and the default value will be used. Otherwise
 you have to provide a Just containing a Column PGInt4.
An optional nullable PGInt4 is created with optional and gives
 rise to a
TableColumns (Maybe (Column (Nullable PGInt4))) (Column (Nullable PGInt4))
Optional columns are those that can be omitted on writes, such as
 those that have DEFAULTs or those that are SERIAL.
 When you insert or update into this column you must give it a Maybe
 (Column (Nullable PGInt4)). If you provide Nothing then the default
 value will be used. Otherwise you have to provide a Just containing
 a Column (Nullable PGInt4) (which can be null).
- table :: String -> TableColumns writeColumns viewColumns -> Table writeColumns viewColumns
- tableWithSchema :: String -> String -> TableColumns writeColumns viewColumns -> Table writeColumns viewColumns
- data Table writerColumns viewColumns- = Table String (TableColumns writerColumns viewColumns)
- | TableWithSchema String String (TableColumns writerColumns viewColumns)
 
- tableColumn :: TableColumn a b => String -> TableColumns a (Column b)
- optional :: String -> TableColumns (Maybe (Column a)) (Column a)
- required :: String -> TableColumns (Column a) (Column a)
- queryTable :: Default Unpackspec columns columns => Table a columns -> Query columns
- type TableColumns = TableProperties
- data View columns
- data Writer columns dummy
- data Table writerColumns viewColumns- = Table String (TableColumns writerColumns viewColumns)
- | TableWithSchema String String (TableColumns writerColumns viewColumns)
 
- queryTable :: Default Unpackspec columns columns => Table a columns -> Query columns
- table :: String -> TableColumns writeColumns viewColumns -> Table writeColumns viewColumns
- tableWithSchema :: String -> String -> TableColumns writeColumns viewColumns -> Table writeColumns viewColumns
- queryTableExplicit :: Unpackspec tablecolumns columns -> Table a tablecolumns -> Query columns
Creating tables
Arguments
| :: String | Table name | 
| -> TableColumns writeColumns viewColumns | |
| -> Table writeColumns viewColumns | 
Create a table with unqualified names.
Arguments
| :: String | Schema name | 
| -> String | Table name | 
| -> TableColumns writeColumns viewColumns | |
| -> Table writeColumns viewColumns | 
Create a table.
data Table writerColumns viewColumns Source #
Constructors
| Table String (TableColumns writerColumns viewColumns) | For unqualified table names. Do not use the constructor. It is internal and will be deprecated in version 0.7. | 
| TableWithSchema String String (TableColumns writerColumns viewColumns) | Schema name, table name, table properties. Do not use the constructor. It is internal and will be deprecated in version 0.7. | 
tableColumn :: TableColumn a b => String -> TableColumns a (Column b) Source #
optional :: String -> TableColumns (Maybe (Column a)) (Column a) Source #
optional is for columns that you can omit on writes, such as
  columns which have defaults or which are SERIAL.
Querying tables
queryTable :: Default Unpackspec columns columns => Table a columns -> Query columns Source #
Example type specialization:
queryTable :: Table w (Column a, Column b)
           -> Query (Column a, Column b)
Assuming the makeAdaptorAndInstance splice has been run for the
 product type Foo:
queryTable :: Table w (Foo (Column a) (Column b) (Column c))
           -> Query (Foo (Column a) (Column b) (Column c))
Other
type TableColumns = TableProperties Source #
The new name for TableColumns which will replace
 TableColumn in version 0.7.
Deprecated
data Writer columns dummy Source #
Internal only.  Do not use.  Writer will be deprecated in
 version 0.7.
data Table writerColumns viewColumns Source #
Constructors
| Table String (TableColumns writerColumns viewColumns) | For unqualified table names. Do not use the constructor. It is internal and will be deprecated in version 0.7. | 
| TableWithSchema String String (TableColumns writerColumns viewColumns) | Schema name, table name, table properties. Do not use the constructor. It is internal and will be deprecated in version 0.7. | 
Module reexport
queryTable :: Default Unpackspec columns columns => Table a columns -> Query columns Source #
Example type specialization:
queryTable :: Table w (Column a, Column b)
           -> Query (Column a, Column b)
Assuming the makeAdaptorAndInstance splice has been run for the
 product type Foo:
queryTable :: Table w (Foo (Column a) (Column b) (Column c))
           -> Query (Foo (Column a) (Column b) (Column c))
Arguments
| :: String | Table name | 
| -> TableColumns writeColumns viewColumns | |
| -> Table writeColumns viewColumns | 
Create a table with unqualified names.
Arguments
| :: String | Schema name | 
| -> String | Table name | 
| -> TableColumns writeColumns viewColumns | |
| -> Table writeColumns viewColumns | 
Create a table.
Explicit versions
queryTableExplicit :: Unpackspec tablecolumns columns -> Table a tablecolumns -> Query columns Source #