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

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 #

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

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

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 #

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

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 #

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) 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 writeType sqlType | writeType -> sqlType where Source #

Minimal complete definition

tableColumn

Methods

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

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.

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 #