-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Meta package of Relational Record
--   
--   Meta package to install Relational Record quickly
@package relational-record
@version 0.1.7.1


-- | This module is documentation module for relational-record. The project
--   page of relational-record is
--   <a>http://khibino.github.io/haskell-relational-record/</a> .
module Database.Relational.Query.Documentation
query :: (MonadQualify ConfigureQuery m, MonadQuery m) => Relation () r -> m (Projection Flat r)
queryMaybe :: (MonadQualify ConfigureQuery m, MonadQuery m) => Relation () r -> m (Projection Flat (Maybe r))
on :: MonadQuery m => Projection Flat (Maybe Bool) -> m ()
wheres :: MonadRestrict Flat m => Projection Flat (Maybe Bool) -> m ()
groupBy :: MonadAggregate m => forall r. Projection Flat r -> m (Projection Aggregated r)
having :: MonadRestrict Aggregated m => Projection Aggregated (Maybe Bool) -> m ()
distinct :: MonadQuery m => m ()
all' :: MonadQuery m => m ()
(<-#) :: Monad m => AssignTarget r v -> Projection Flat v -> Assignings r m ()
inner :: Relation () a -> Relation () b -> [JoinRestriction a b] -> Relation () (a, b)
left :: Relation () a -> Relation () b -> [JoinRestriction a (Maybe b)] -> Relation () (a, Maybe b)
right :: Relation () a -> Relation () b -> [JoinRestriction (Maybe a) b] -> Relation () (Maybe a, b)
full :: Relation () a -> Relation () b -> [JoinRestriction (Maybe a) (Maybe b)] -> Relation () (Maybe a, Maybe b)
on' :: ([JoinRestriction a b] -> Relation pc (a, b)) -> [JoinRestriction a b] -> Relation pc (a, b)
type JoinRestriction a b = Projection Flat a -> Projection Flat b -> Projection Flat (Maybe Bool)
data Relation p r :: * -> * -> *
relation :: QuerySimple (Projection Flat r) -> Relation () r
aggregateRelation :: QueryAggregate (Projection Aggregated r) -> Relation () r
data UpdateTarget p r :: * -> * -> *
updateTarget :: AssignStatement r () -> UpdateTarget () r
data Restriction p r :: * -> * -> *
restriction :: RestrictedStatement r () -> Restriction () r
data Projection c t :: * -> * -> *
data Flat :: *
data Aggregated :: *
data Exists :: *
data OverWindow :: *
data Pi r0 r1 :: * -> * -> *
(!) :: Projection c a -> Pi a b -> Projection c b
(<.>) :: Pi a b -> Pi b c -> Pi a c
value :: (ShowConstantTermsSQL t, OperatorProjectable p) => t -> p t
values :: (ShowConstantTermsSQL t, OperatorProjectable p) => [t] -> ListProjection p t
(.=.) :: (OperatorProjectable p, ProjectableShowSql p) => p ft -> p ft -> p (Maybe Bool)
(.<.) :: (OperatorProjectable p, ProjectableShowSql p) => p ft -> p ft -> p (Maybe Bool)
(.<=.) :: (OperatorProjectable p, ProjectableShowSql p) => p ft -> p ft -> p (Maybe Bool)
(.>.) :: (OperatorProjectable p, ProjectableShowSql p) => p ft -> p ft -> p (Maybe Bool)
(.>=.) :: (OperatorProjectable p, ProjectableShowSql p) => p ft -> p ft -> p (Maybe Bool)
(.<>.) :: (OperatorProjectable p, ProjectableShowSql p) => p ft -> p ft -> p (Maybe Bool)
and' :: (OperatorProjectable p, ProjectableShowSql p) => p (Maybe Bool) -> p (Maybe Bool) -> p (Maybe Bool)
or' :: (OperatorProjectable p, ProjectableShowSql p) => p (Maybe Bool) -> p (Maybe Bool) -> p (Maybe Bool)
in' :: (OperatorProjectable p, ProjectableShowSql p) => p t -> ListProjection p t -> p (Maybe Bool)
(.||.) :: (OperatorProjectable p, ProjectableShowSql p, IsString a) => p a -> p a -> p a
like :: (OperatorProjectable p, ProjectableShowSql p, IsString a, ShowConstantTermsSQL a) => p a -> a -> p (Maybe Bool)
like' :: (OperatorProjectable p, ProjectableShowSql p, IsString a) => p a -> p a -> p (Maybe Bool)
(.+.) :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p a -> p a -> p a
(.-.) :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p a -> p a -> p a
(.*.) :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p a -> p a -> p a
(./.) :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p a -> p a -> p a
isNothing :: (OperatorProjectable (Projection c), ProjectableShowSql (Projection c), HasColumnConstraint NotNull r) => Projection c (Maybe r) -> Projection c (Maybe Bool)
isJust :: (OperatorProjectable (Projection c), ProjectableShowSql (Projection c), HasColumnConstraint NotNull r) => Projection c (Maybe r) -> Projection c (Maybe Bool)
fromMaybe :: (OperatorProjectable (Projection c), ProjectableShowSql (Projection c), HasColumnConstraint NotNull r) => Projection c r -> Projection c (Maybe r) -> Projection c r
not' :: (OperatorProjectable p, ProjectableShowSql p) => p (Maybe Bool) -> p (Maybe Bool)
exists :: (OperatorProjectable p, ProjectableShowSql p) => ListProjection (Projection Exists) r -> p (Maybe Bool)
negate' :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p a -> p a
fromIntegral' :: (SqlProjectable p, ProjectableShowSql p, Integral a, Num b) => p a -> p b
showNum :: (SqlProjectable p, ProjectableShowSql p, Num a, IsString b) => p a -> p b
casesOrElse :: OperatorProjectable (Projection c) => [(Projection c (Maybe Bool), Projection c a)] -> Projection c a -> Projection c a
case' :: OperatorProjectable (Projection c) => Projection c a -> [(Projection c a, Projection c b)] -> Projection c b -> Projection c b
count :: (Integral b, AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat a -> p ac b
sum' :: (Num a, AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat a -> p ac (Maybe a)
avg :: (Num a, Fractional b, AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat a -> p ac (Maybe b)
max' :: (Ord a, AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat a -> p ac (Maybe a)
min' :: (Ord a, AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat a -> p ac (Maybe a)
every :: (AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat (Maybe Bool) -> p ac (Maybe Bool)
any' :: (AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat (Maybe Bool) -> p ac (Maybe Bool)
some' :: (AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat (Maybe Bool) -> p ac (Maybe Bool)
over :: SqlProjectable (Projection c) => Projection OverWindow a -> Window c () -> Projection c a
rank :: Integral a => Projection OverWindow a
denseRank :: Integral a => Projection OverWindow a
rowNumber :: Integral a => Projection OverWindow a
percentRank :: Projection OverWindow Double
cumeDist :: Projection OverWindow Double
union :: Relation () a -> Relation () a -> Relation () a
except :: Relation () a -> Relation () a -> Relation () a
intersect :: Relation () a -> Relation () a -> Relation () a
just :: ProjectableMaybe p => forall a. p a -> p (Maybe a)
flattenMaybe :: ProjectableMaybe p => forall a. p (Maybe (Maybe a)) -> p (Maybe a)
(?!) :: Projection c (Maybe a) -> Pi a b -> Projection c (Maybe b)
(?!?) :: Projection c (Maybe a) -> Pi a (Maybe b) -> Projection c (Maybe b)
(<?.>) :: Pi a (Maybe b) -> Pi b c -> Pi a (Maybe c)
(<?.?>) :: Pi a (Maybe b) -> Pi b (Maybe c) -> Pi a (Maybe c)
(?+?) :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p (Maybe a) -> p (Maybe a) -> p (Maybe a)
negateMaybe :: (OperatorProjectable p, ProjectableShowSql p, Num a) => p (Maybe a) -> p (Maybe a)
sumMaybe :: (Num a, AggregatedContext ac, SqlProjectable (p ac)) => Projection Flat (Maybe a) -> p ac (Maybe a)
placeholder :: (PersistableWidth t, SqlProjectable p, Monad m) => (p t -> m a) -> m (PlaceHolders t, a)
query' :: MonadQuery m => forall p r. Relation p r -> m (PlaceHolders p, Projection Flat r)
left' :: Relation pa a -> Relation pb b -> [JoinRestriction a (Maybe b)] -> Relation (pa, pb) (a, Maybe b)
relation' :: SimpleQuery p r -> Relation p r
updateTarget' :: AssignStatement r (PlaceHolders p) -> UpdateTarget p r
restriction' :: RestrictedStatement r (PlaceHolders p) -> Restriction p r
union' :: Relation p a -> Relation q a -> Relation (p, q) a
class ProductConstructor r
class ProjectableFunctor (p :: * -> *)
(|$|) :: (ProjectableFunctor p, ProductConstructor (a -> b)) => (a -> b) -> p a -> p b
class ProjectableFunctor p => ProjectableApplicative (p :: * -> *)
(|*|) :: ProjectableApplicative p => p (a -> b) -> p a -> p b
(><) :: ProjectableApplicative p => p a -> p b -> p (a, b)
relationalQuery :: Relation p r -> Query p r
typedInsert :: Table r -> Pi r r' -> Insert r'
typedInsertQuery :: Table r -> Pi r r' -> Relation p r' -> InsertQuery p
typedUpdate :: Table r -> UpdateTarget p r -> Update p
typedDelete :: Table r -> Restriction p r -> Delete p
typedKeyUpdate :: Table a -> Pi a p -> KeyUpdate p a
derivedInsert :: TableDerivable r => Pi r r' -> Insert r'
derivedInsertQuery :: TableDerivable r => Pi r r' -> Relation p r' -> InsertQuery p
derivedUpdate :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p
derivedDelete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p

-- | Generalized prepare inferred from <a>UntypeableNoFetch</a> instance.
prepareNoFetch :: (UntypeableNoFetch s, IConnection conn) => conn -> s p -> IO (PreparedStatement p ())

-- | Typed operation to bind parameters. Infered <a>RecordToSql</a> is
--   used.
bind :: ToSql SqlValue p => PreparedStatement p a -> p -> BoundStatement a

-- | Typed execute operation.
execute :: BoundStatement a -> IO (ExecutedStatement a)

-- | Typed execute operation. Only get result.
executeNoFetch :: BoundStatement () -> IO Integer

-- | Same as <a>prepare</a>.
prepareQuery :: IConnection conn => conn -> Query p a -> IO (PreparedQuery p a)

-- | Fetch a record.
fetch :: FromSql SqlValue a => ExecutedStatement a -> IO (Maybe a)

-- | Prepare SQL, bind parameters, execute statement and lazily fetch all
--   records.
runQuery :: (IConnection conn, ToSql SqlValue p, FromSql SqlValue a) => conn -> Query p a -> p -> IO [a]

-- | Strict version of <a>runQuery</a>.
runQuery' :: (IConnection conn, ToSql SqlValue p, FromSql SqlValue a) => conn -> Query p a -> p -> IO [a]

-- | Same as <a>prepare</a>.
prepareInsert :: IConnection conn => conn -> Insert a -> IO (PreparedInsert a)

-- | Prepare insert statement, bind parameters, execute statement and get
--   execution result.
runInsert :: (IConnection conn, ToSql SqlValue a) => conn -> Insert a -> a -> IO Integer

-- | Same as <a>prepare</a>.
prepareInsertQuery :: IConnection conn => conn -> InsertQuery p -> IO (PreparedInsertQuery p)

-- | Prepare insert statement, bind parameters, execute statement and get
--   execution result.
runInsertQuery :: (IConnection conn, ToSql SqlValue p) => conn -> InsertQuery p -> p -> IO Integer

-- | Same as <a>prepare</a>.
prepareUpdate :: IConnection conn => conn -> Update p -> IO (PreparedUpdate p)

-- | Prepare update statement, bind parameters, execute statement and get
--   execution result.
runUpdate :: (IConnection conn, ToSql SqlValue p) => conn -> Update p -> p -> IO Integer

-- | Same as <a>prepare</a>.
prepareDelete :: IConnection conn => conn -> Delete p -> IO (PreparedDelete p)

-- | Prepare delete statement, bind parameters, execute statement and get
--   execution result.
runDelete :: (IConnection conn, ToSql SqlValue p) => conn -> Delete p -> p -> IO Integer

-- | Same as <a>prepare</a>.
prepareKeyUpdate :: IConnection conn => conn -> KeyUpdate p a -> IO (PreparedKeyUpdate p a)

-- | Typed operation to bind parameters for <a>PreparedKeyUpdate</a> type.
bindKeyUpdate :: ToSql SqlValue a => PreparedKeyUpdate p a -> a -> BoundStatement ()

-- | Prepare insert statement, bind parameters, execute statement and get
--   execution result.
runKeyUpdate :: (IConnection conn, ToSql SqlValue a) => conn -> KeyUpdate p a -> a -> IO Integer
