| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Opaleye.Table
Description
Columns can be required or optional and, independently, nullable or non-nullable.
A required non-nullable SqlInt4 (for example) is created with
required and gives rise to a
TableFields (Column SqlInt4) (Column SqlInt4)
The leftmost argument is the type of writes. When you insert or
update into this column you must give it a Column SqlInt4 (which you
can create with sqlInt4 :: Int -> Column SqlInt4).
A required nullable SqlInt4 is created with required and gives rise
to a
TableFields (Column (Nullable SqlInt4)) (Column (Nullable SqlInt4))
When you insert or update into this column you must give it a Column
(Nullable SqlInt4), which you can create either with sqlInt4 and
toNullable :: Column a -> Column (Nullable a), or with null ::
Column (Nullable a).
An optional non-nullable SqlInt4 is created with optional and gives
rise to a
TableFields (Maybe (Column SqlInt4)) (Column SqlInt4)
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 SqlInt4). 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 SqlInt4.
An optional nullable SqlInt4 is created with optional and gives
rise to a
TableFields (Maybe (Column (Nullable SqlInt4))) (Column (Nullable SqlInt4))
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 SqlInt4)). If you provide Nothing then the default
value will be used. Otherwise you have to provide a Just containing
a Column (Nullable SqlInt4) (which can be null).
Synopsis
- table :: String -> TableFields writeFields viewFields -> Table writeFields viewFields
- tableWithSchema :: String -> String -> TableFields writeFields viewFields -> Table writeFields viewFields
- data Table writerColumns viewColumns
- tableColumn :: TableColumn writeType sqlType => String -> TableFields writeType (Column sqlType)
- tableField :: TableColumn writeType sqlType => String -> TableFields writeType (Column sqlType)
- optional :: String -> TableFields (Maybe (Column a)) (Column a)
- required :: String -> TableFields (Column a) (Column a)
- selectTable :: Default Unpackspec fields fields => Table a fields -> Select fields
- type TableColumns = TableProperties
- type TableFields = TableProperties
- data View columns
- data Writer columns dummy
- data Table writerColumns viewColumns
- = Table String (TableFields writerColumns viewColumns)
- | TableWithSchema String String (TableFields writerColumns viewColumns)
- selectTable :: Default Unpackspec fields fields => Table a fields -> Select fields
- table :: String -> TableFields writeFields viewFields -> Table writeFields viewFields
- tableWithSchema :: String -> String -> TableFields writeFields viewFields -> Table writeFields viewFields
- selectTableExplicit :: Unpackspec tablefields fields -> Table a tablefields -> Select fields
- queryTable :: Default Unpackspec fields fields => Table a fields -> Select fields
- queryTableExplicit :: Unpackspec tablefields fields -> Table a tablefields -> Select fields
Creating tables
Arguments
| :: String | Table name |
| -> TableFields writeFields viewFields | |
| -> Table writeFields viewFields |
Create a table with unqualified names.
Arguments
| :: String | Schema name |
| -> String | Table name |
| -> TableFields writeFields viewFields | |
| -> Table writeFields viewFields |
Create a table.
data Table writerColumns viewColumns Source #
Instances
| Profunctor Table Source # | |
Defined in Opaleye.Internal.Table | |
| Functor (Table a) Source # | |
tableColumn :: TableColumn writeType sqlType => String -> TableFields writeType (Column sqlType) Source #
tableField :: TableColumn writeType sqlType => String -> TableFields writeType (Column sqlType) Source #
optional :: String -> TableFields (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
Arguments
| :: Default Unpackspec fields fields | |
| => Table a fields | |
| -> Select fields |
Example type specialization:
selectTable :: Table w (Column a, Column b)
-> Select (Column a, Column b)
Assuming the makeAdaptorAndInstance splice has been run for the
product type Foo:
selectTable :: Table w (Foo (Column a) (Column b) (Column c))
-> Select (Foo (Column a) (Column b) (Column c))
Other
type TableColumns = TableProperties Source #
Use TableFields instead. TableColumns will be deprecated in
version 0.7.
type TableFields = TableProperties Source #
The new name for TableColumns and TableProperties which will
replace them in version 0.7.
Deprecated
data Writer columns dummy Source #
Internal only. Do not use. Writer will be deprecated in
version 0.7.
Instances
| Profunctor Writer Source # | |
Defined in Opaleye.Internal.Table | |
| ProductProfunctor Writer Source # | |
| Functor (Writer a) Source # | |
| Applicative (Writer a) Source # | |
data Table writerColumns viewColumns Source #
Constructors
| Table String (TableFields 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 (TableFields writerColumns viewColumns) | Schema name, table name, table properties. Do not use the constructor. It is internal and will be deprecated in version 0.7. |
Instances
| Profunctor Table Source # | |
Defined in Opaleye.Internal.Table | |
| Functor (Table a) Source # | |
Module reexport
Arguments
| :: Default Unpackspec fields fields | |
| => Table a fields | |
| -> Select fields |
Example type specialization:
selectTable :: Table w (Column a, Column b)
-> Select (Column a, Column b)
Assuming the makeAdaptorAndInstance splice has been run for the
product type Foo:
selectTable :: Table w (Foo (Column a) (Column b) (Column c))
-> Select (Foo (Column a) (Column b) (Column c))
Arguments
| :: String | Table name |
| -> TableFields writeFields viewFields | |
| -> Table writeFields viewFields |
Create a table with unqualified names.
Arguments
| :: String | Schema name |
| -> String | Table name |
| -> TableFields writeFields viewFields | |
| -> Table writeFields viewFields |
Create a table.
Arguments
| :: Unpackspec tablefields fields | |
| -> Table a tablefields | |
| -> Select fields |
queryTable :: Default Unpackspec fields fields => Table a fields -> Select fields Source #
Use selectTable instead. Will be deprecated in version 0.7.
queryTableExplicit :: Unpackspec tablefields fields -> Table a tablefields -> Select fields Source #
Use selectTableExplicit instead. Will be deprecated in version
0.7.