pasta-0.1.0.3: PostgreSQL Abstract Syntax Tree Assember

Safe HaskellNone
LanguageHaskell2010

Pasta

Description

 

Synopsis

Documentation

target :: HasTarget s a => Lens' s a Source #

assignments :: HasAssignments s a => Lens' s a Source #

conditions :: HasConditions s a => Lens' s a Source #

insert :: Text -> NonEmpty Text -> NonEmpty Text -> Insert Source #

Builds an INSERT statement using a target, a non-empty list of column names and a non-empty list of values

columns :: HasColumns s a => Lens' s a Source #

values :: HasValues s a => Lens' s a Source #

update :: Text -> NonEmpty Text -> NonEmpty Expression -> Update Source #

Builds an UPDATE statement using a target, a non-empty list of column names and a non-empty list of values

delete :: Text -> Delete Source #

Builds a DELETE statement using a target

returning :: HasReturning s a => Lens' s a Source #

onConflict :: HasOnConflict s a => Lens' s a Source #

doNothing :: Maybe Conflict Source #

Used for conflict resolution when we don't want the conflict to trigger any exception

doUpdate :: ConflictTarget -> [Assignment] -> Maybe Conflict Source #

Used for conflict resolution when we want the conflict to update some column

(.=) :: IsExpression exp => Name -> exp -> Assignment Source #

Assignment operator creates SQL assignments like in conflict resolution rules

(//) :: Name -> Name -> Identifier Source #

Identifier builder, takes two names and builds a qualified identifier (e.g. "information_schema"."tables")

select :: Select Source #

Builds a SELECT null with neither FROM nor WHERE clauses.

selectExp :: Expression -> Select Source #

Builds a SELECT expression with neither FROM nor WHERE clauses

selectFrom :: Name -> Select Source #

Builds a SELECT * FROM table statement.

selectFunction :: Identifier -> [Expression] -> Select Source #

Builds a SELECT fn(parameters) with neither FROM nor WHERE clauses

t :: BooleanExpression Source #

Just a convenient way to write a BoolLiteral True

f :: BooleanExpression Source #

Just a convenient way to write a BoolLiteral False

relations :: HasRelations s a => Lens' s a Source #

toSQL :: IsSQL a => a -> Text Source #

data NonEmpty a :: * -> * #

Non-empty (and non-strict) list type.

Since: 4.9.0.0

Constructors

a :| [a] infixr 5 

Instances

Monad NonEmpty 

Methods

(>>=) :: NonEmpty a -> (a -> NonEmpty b) -> NonEmpty b #

(>>) :: NonEmpty a -> NonEmpty b -> NonEmpty b #

return :: a -> NonEmpty a #

fail :: String -> NonEmpty a #

Functor NonEmpty 

Methods

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

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

MonadFix NonEmpty 

Methods

mfix :: (a -> NonEmpty a) -> NonEmpty a #

Applicative NonEmpty 

Methods

pure :: a -> NonEmpty a #

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

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

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

Foldable NonEmpty 

Methods

fold :: Monoid m => NonEmpty m -> m #

foldMap :: Monoid m => (a -> m) -> NonEmpty a -> m #

foldr :: (a -> b -> b) -> b -> NonEmpty a -> b #

foldr' :: (a -> b -> b) -> b -> NonEmpty a -> b #

foldl :: (b -> a -> b) -> b -> NonEmpty a -> b #

foldl' :: (b -> a -> b) -> b -> NonEmpty a -> b #

foldr1 :: (a -> a -> a) -> NonEmpty a -> a #

foldl1 :: (a -> a -> a) -> NonEmpty a -> a #

toList :: NonEmpty a -> [a] #

null :: NonEmpty a -> Bool #

length :: NonEmpty a -> Int #

elem :: Eq a => a -> NonEmpty a -> Bool #

maximum :: Ord a => NonEmpty a -> a #

minimum :: Ord a => NonEmpty a -> a #

sum :: Num a => NonEmpty a -> a #

product :: Num a => NonEmpty a -> a #

Traversable NonEmpty 

Methods

traverse :: Applicative f => (a -> f b) -> NonEmpty a -> f (NonEmpty b) #

sequenceA :: Applicative f => NonEmpty (f a) -> f (NonEmpty a) #

mapM :: Monad m => (a -> m b) -> NonEmpty a -> m (NonEmpty b) #

sequence :: Monad m => NonEmpty (m a) -> m (NonEmpty a) #

Generic1 NonEmpty 

Associated Types

type Rep1 (NonEmpty :: * -> *) :: * -> * #

Methods

from1 :: NonEmpty a -> Rep1 NonEmpty a #

to1 :: Rep1 NonEmpty a -> NonEmpty a #

MonadZip NonEmpty 

Methods

mzip :: NonEmpty a -> NonEmpty b -> NonEmpty (a, b) #

mzipWith :: (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c #

munzip :: NonEmpty (a, b) -> (NonEmpty a, NonEmpty b) #

IsList (NonEmpty a) 

Associated Types

type Item (NonEmpty a) :: * #

Methods

fromList :: [Item (NonEmpty a)] -> NonEmpty a #

fromListN :: Int -> [Item (NonEmpty a)] -> NonEmpty a #

toList :: NonEmpty a -> [Item (NonEmpty a)] #

Eq a => Eq (NonEmpty a) 

Methods

(==) :: NonEmpty a -> NonEmpty a -> Bool #

(/=) :: NonEmpty a -> NonEmpty a -> Bool #

Data a => Data (NonEmpty a) 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NonEmpty a -> c (NonEmpty a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NonEmpty a) #

toConstr :: NonEmpty a -> Constr #

dataTypeOf :: NonEmpty a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (NonEmpty a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (NonEmpty a)) #

gmapT :: (forall b. Data b => b -> b) -> NonEmpty a -> NonEmpty a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NonEmpty a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NonEmpty a -> r #

gmapQ :: (forall d. Data d => d -> u) -> NonEmpty a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NonEmpty a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NonEmpty a -> m (NonEmpty a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NonEmpty a -> m (NonEmpty a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NonEmpty a -> m (NonEmpty a) #

Ord a => Ord (NonEmpty a) 

Methods

compare :: NonEmpty a -> NonEmpty a -> Ordering #

(<) :: NonEmpty a -> NonEmpty a -> Bool #

(<=) :: NonEmpty a -> NonEmpty a -> Bool #

(>) :: NonEmpty a -> NonEmpty a -> Bool #

(>=) :: NonEmpty a -> NonEmpty a -> Bool #

max :: NonEmpty a -> NonEmpty a -> NonEmpty a #

min :: NonEmpty a -> NonEmpty a -> NonEmpty a #

Read a => Read (NonEmpty a) 
Show a => Show (NonEmpty a) 

Methods

showsPrec :: Int -> NonEmpty a -> ShowS #

show :: NonEmpty a -> String #

showList :: [NonEmpty a] -> ShowS #

Generic (NonEmpty a) 

Associated Types

type Rep (NonEmpty a) :: * -> * #

Methods

from :: NonEmpty a -> Rep (NonEmpty a) x #

to :: Rep (NonEmpty a) x -> NonEmpty a #

Each (NonEmpty a) (NonEmpty b) a b 

Methods

each :: Traversal (NonEmpty a) (NonEmpty b) a b #

type Rep1 NonEmpty 
type Rep (NonEmpty a) 
type Item (NonEmpty a) 
type Item (NonEmpty a) = a

fromList :: [a] -> NonEmpty a #

Converts a normal list to a NonEmpty stream.

Raises an error if given an empty list.

(.!) :: BooleanExpression -> BooleanExpression infixr 0 Source #

Boolean NOT

cmp :: (IsExpression lexp, IsExpression rexp) => Text -> lexp -> rexp -> BooleanExpression Source #

Builds a BooleanExpression out of an operator and 2 expressions

eq :: (IsExpression lexp, IsExpression rexp) => lexp -> rexp -> BooleanExpression Source #

Builds a equality comparison out of two expressions

gt :: (IsExpression lexp, IsExpression rexp) => lexp -> rexp -> BooleanExpression Source #

Builds a greater than comparison out of two expressions

lt :: (IsExpression lexp, IsExpression rexp) => lexp -> rexp -> BooleanExpression Source #

Builds a lesser than comparison out of two expressions

gte :: (IsExpression lexp, IsExpression rexp) => lexp -> rexp -> BooleanExpression Source #

Builds a greater than or equal comparison out of two expressions

lte :: (IsExpression lexp, IsExpression rexp) => lexp -> rexp -> BooleanExpression Source #

Builds a lesser than or equal comparison out of two expressions

fn :: Identifier -> [Expression] -> Expression Source #

Builds a function

now :: Expression Source #

Builds a now() function

age :: IsExpression exp => exp -> Expression Source #

Builds an age(t) function