opaleye-0.6.0.0: An SQL-generating DSL targeting PostgreSQL

Safe HaskellNone
LanguageHaskell2010

Opaleye.Internal.Table

Synopsis

Documentation

"pWidget" ''Widget)

widgetTable :: Table (Widget (Maybe (Column PGInt4)) (Column PGText) (Column PGText) (Column PGInt4) (Column PGFloat8)) (Widget (Column PGText) (Column PGText) (Column PGText) (Column PGInt4) (Column PGFloat8)) widgetTable = table "widgetTable" (pWidget Widget { wid = tableColumn "id" , color = tableColumn "color" , location = tableColumn "location" , quantity = tableColumn "quantity" , radius = tableColumn "radius" }) @

The constructors of Table are internal only and 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.

Instances

Profunctor Table Source # 

Methods

dimap :: (a -> b) -> (c -> d) -> Table b c -> Table a d #

lmap :: (a -> b) -> Table b c -> Table a c #

rmap :: (b -> c) -> Table a b -> Table a c #

(#.) :: Coercible * c b => (b -> c) -> Table a b -> Table a c #

(.#) :: Coercible * b a => Table b c -> (a -> b) -> Table a c #

Functor (Table a) Source # 

Methods

fmap :: (a -> b) -> Table a a -> Table a b #

(<$) :: a -> Table a b -> Table a a #

tableIdentifier :: Table writeColumns viewColumns -> TableIdentifier Source #

tableColumns :: Table writeColumns viewColumns -> TableColumns writeColumns viewColumns Source #

tableProperties :: Table writeColumns viewColumns -> TableColumns writeColumns viewColumns Source #

Use tableColumns instead. Will be deprecated soon.

data TableProperties writeColumns viewColumns Source #

Use TableColumns instead. TableProperties will be deprecated in version 0.7.

Constructors

TableProperties 

Fields

Instances

ProductProfunctor TableProperties Source # 

Methods

purePP :: b -> TableProperties a b #

(****) :: TableProperties a (b -> c) -> TableProperties a b -> TableProperties a c #

empty :: TableProperties () () #

(***!) :: TableProperties a b -> TableProperties a' b' -> TableProperties (a, a') (b, b') #

Profunctor TableProperties Source # 

Methods

dimap :: (a -> b) -> (c -> d) -> TableProperties b c -> TableProperties a d #

lmap :: (a -> b) -> TableProperties b c -> TableProperties a c #

rmap :: (b -> c) -> TableProperties a b -> TableProperties a c #

(#.) :: Coercible * c b => (b -> c) -> TableProperties a b -> TableProperties a c #

(.#) :: Coercible * b a => TableProperties b c -> (a -> b) -> TableProperties a c #

Functor (TableProperties a) Source # 

Methods

fmap :: (a -> b) -> TableProperties a a -> TableProperties a b #

(<$) :: a -> TableProperties a b -> TableProperties a a #

Applicative (TableProperties a) Source # 

type TableColumns = TableProperties Source #

The new name for TableColumns which will replace TableColumn in version 0.7.

tableColumnsWriter :: TableColumns writeColumns viewColumns -> Writer writeColumns viewColumns Source #

tableColumnsView :: TableColumns writeColumns viewColumns -> View viewColumns Source #

data View columns Source #

Internal only. Do not use. View will be deprecated in version 0.7.

Constructors

View columns 

newtype Writer columns dummy Source #

Internal only. Do not use. Writer will be deprecated in version 0.7.

Constructors

Writer (forall f. Functor f => PackMap (f PrimExpr, String) () (f columns) ()) 

Instances

ProductProfunctor Writer Source # 

Methods

purePP :: b -> Writer a b #

(****) :: Writer a (b -> c) -> Writer a b -> Writer a c #

empty :: Writer () () #

(***!) :: Writer a b -> Writer a' b' -> Writer (a, a') (b, b') #

Profunctor Writer Source # 

Methods

dimap :: (a -> b) -> (c -> d) -> Writer b c -> Writer a d #

lmap :: (a -> b) -> Writer b c -> Writer a c #

rmap :: (b -> c) -> Writer a b -> Writer a c #

(#.) :: Coercible * c b => (b -> c) -> Writer a b -> Writer a c #

(.#) :: Coercible * b a => Writer b c -> (a -> b) -> Writer a c #

Functor (Writer a) Source # 

Methods

fmap :: (a -> b) -> Writer a a -> Writer a b #

(<$) :: a -> Writer a b -> Writer a a #

Applicative (Writer a) Source # 

Methods

pure :: a -> Writer a a #

(<*>) :: Writer a (a -> b) -> Writer a a -> Writer a b #

(*>) :: Writer a a -> Writer a b -> Writer a b #

(<*) :: Writer a a -> Writer a b -> Writer a a #

required :: String -> TableColumns (Column a) (Column a) Source #

required is for columns which are not optional. You must provide them on writes.

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.

class TableColumn a b | a -> b where Source #

Minimal complete definition

tableColumn

Methods

tableColumn :: String -> TableColumns a (Column b) Source #

Create either a required or optional column depending on the write type. It's generally more convenient to use this than required or optional.

queryTable :: Unpackspec viewColumns columns -> Table writeColumns viewColumns -> Tag -> (columns, PrimQuery) Source #

runColumnMaker :: Unpackspec tablecolumns columns -> Tag -> tablecolumns -> (columns, [(Symbol, PrimExpr)]) Source #

runWriter :: Writer columns columns' -> columns -> [(PrimExpr, String)] Source #

runWriter' :: Writer columns columns' -> NonEmpty columns -> (NonEmpty [PrimExpr], [String]) Source #

data Zip a Source #

Constructors

Zip 

Fields

Instances

Monoid (Zip a) Source # 

Methods

mempty :: Zip a #

mappend :: Zip a -> Zip a -> Zip a #

mconcat :: [Zip a] -> Zip a #