opaleye-0.6.7000.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 #

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 # 

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) # 

Methods

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

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

tableIdentifier :: Table writeColumns viewColumns -> TableIdentifier #

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

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

Use tableColumns instead. Will be deprecated soon.

data TableProperties writeColumns viewColumns #

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

Constructors

TableProperties 

Fields

Instances

Profunctor TableProperties # 

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 #

ProductProfunctor TableProperties # 

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') #

Functor (TableProperties a) # 

Methods

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

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

Applicative (TableProperties a) # 

type TableColumns = TableProperties #

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

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

tableColumnsView :: TableColumns writeColumns viewColumns -> View viewColumns #

data View columns #

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

Constructors

View columns 

newtype Writer columns dummy #

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

Profunctor Writer # 

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 #

ProductProfunctor Writer # 

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') #

Functor (Writer a) # 

Methods

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

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

Applicative (Writer a) # 

Methods

pure :: a -> Writer a a #

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

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

(*>) :: 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) #

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

optional :: String -> TableColumns (Maybe (Column a)) (Column a) #

optional is for columns that you can omit on writes, such as columns which have defaults or which are SERIAL.

class TableColumn writeType sqlType | writeType -> sqlType where #

Minimal complete definition

tableColumn

Methods

tableColumn :: String -> TableColumns writeType (Column sqlType) #

Infer either a required or optional column depending on the write type. It's generally more convenient to use this than required or optional but you do have to provide a type signature instead.

Instances

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

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

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

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

data Zip a #

Constructors

Zip 

Fields

Instances

Monoid (Zip a) # 

Methods

mempty :: Zip a #

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

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