module Database.Beam.Query.Aggregate
(
aggregate_
, filterWhere_, filterWhere_'
, QGroupable(..)
, sum_, avg_, min_, max_, count_, countAll_
, rank_, cumeDist_, percentRank_, denseRank_
, rowNumber_
, every_, any_, some_
, sumOver_, avgOver_, minOver_, maxOver_, countOver_
, everyOver_, anyOver_, someOver_
, distinctInGroup_, allInGroup_, allInGroupExplicitly_
) where
import Database.Beam.Query.Internal
import Database.Beam.Query.Operator
import Database.Beam.Query.Ord
import Database.Beam.Backend.SQL
import Database.Beam.Schema.Tables
import Control.Applicative
import Control.Monad.Writer
import Control.Monad.Free
import Data.Typeable
type Aggregable be a =
ProjectibleWithPredicate AggregateContext be (WithExprContext (BeamSqlBackendExpressionSyntax' be)) a
aggregate_ :: forall be a r db s.
( BeamSqlBackend be
, Aggregable be a, Projectible be r, Projectible be a
, ContextRewritable a
, ThreadRewritable (QNested s) (WithRewrittenContext a QValueContext)
)
=> (r -> a)
-> Q be db (QNested s) r
-> Q be db s (WithRewrittenThread (QNested s) s (WithRewrittenContext a QValueContext))
aggregate_ :: forall be a r (db :: (* -> *) -> *) s.
(BeamSqlBackend be, Aggregable be a, Projectible be r,
Projectible be a, ContextRewritable a,
ThreadRewritable
(QNested s) (WithRewrittenContext a QValueContext)) =>
(r -> a)
-> Q be db (QNested s) r
-> Q be
db
s
(WithRewrittenThread
(QNested s) s (WithRewrittenContext a QValueContext))
aggregate_ r -> a
mkAggregation (Q QM be db (QNested s) r
aggregating) =
forall be (db :: (* -> *) -> *) s a. QM be db s a -> Q be db s a
Q (forall (f :: * -> *) (m :: * -> *) a.
(Functor f, MonadFree f m) =>
f a -> m a
liftF (forall be grouping a (db :: (* -> *) -> *) s next.
(Projectible be grouping, Projectible be a) =>
(a
-> TablePrefix
-> (Maybe (BeamSqlBackendGroupingSyntax be), grouping))
-> QM be db (QNested s) a -> (grouping -> next) -> QF be db s next
QAggregate r
-> TablePrefix
-> (Maybe
(Sql92SelectTableGroupingSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))),
a)
mkAggregation' QM be db (QNested s) r
aggregating (forall s a s'.
ThreadRewritable s a =>
Proxy s' -> a -> WithRewrittenThread s s' a
rewriteThread (forall {k} (t :: k). Proxy t
Proxy @s) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a ctxt.
ContextRewritable a =>
Proxy ctxt -> a -> WithRewrittenContext a ctxt
rewriteContext (forall {k} (t :: k). Proxy t
Proxy @QValueContext))))
where
mkAggregation' :: r
-> TablePrefix
-> (Maybe
(Sql92SelectTableGroupingSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))),
a)
mkAggregation' r
x TablePrefix
tblPfx =
let agg :: a
agg = r -> a
mkAggregation r
x
doProject :: AggregateContext c
=> Proxy c -> Proxy be
-> WithExprContext (BeamSqlBackendExpressionSyntax' be)
-> Writer [WithExprContext (BeamSqlBackendExpressionSyntax' be)]
(WithExprContext (BeamSqlBackendExpressionSyntax' be))
doProject :: forall c.
AggregateContext c =>
Proxy c
-> Proxy be
-> (TablePrefix -> BeamSqlBackendExpressionSyntax' be)
-> Writer
[TablePrefix -> BeamSqlBackendExpressionSyntax' be]
(TablePrefix -> BeamSqlBackendExpressionSyntax' be)
doProject Proxy c
p Proxy be
_ TablePrefix -> BeamSqlBackendExpressionSyntax' be
expr =
case forall a b. (Typeable a, Typeable b) => a -> Maybe b
cast Proxy c
p of
Just (Proxy QGroupingContext
Proxy :: Proxy QGroupingContext) ->
forall w (m :: * -> *). MonadWriter w m => w -> m ()
tell [ TablePrefix -> BeamSqlBackendExpressionSyntax' be
expr ] forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> forall (f :: * -> *) a. Applicative f => a -> f a
pure TablePrefix -> BeamSqlBackendExpressionSyntax' be
expr
Maybe (Proxy QGroupingContext)
Nothing ->
case forall a b. (Typeable a, Typeable b) => a -> Maybe b
cast Proxy c
p of
Just (Proxy QAggregateContext
Proxy :: Proxy QAggregateContext) ->
forall (f :: * -> *) a. Applicative f => a -> f a
pure TablePrefix -> BeamSqlBackendExpressionSyntax' be
expr
Maybe (Proxy QAggregateContext)
Nothing -> forall a. HasCallStack => [Char] -> a
error [Char]
"aggregate_: impossible"
groupingExprs :: [TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))]
groupingExprs =
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall be.
BeamSqlBackendExpressionSyntax' be
-> BeamSqlBackendExpressionSyntax be
fromBeamSqlBackendExpressionSyntax) forall a b. (a -> b) -> a -> b
$
forall w a. Writer w a -> w
execWriter (forall (contextPredicate :: * -> Constraint) be res a
(m :: * -> *).
(ProjectibleWithPredicate contextPredicate be res a, Monad m) =>
Proxy contextPredicate
-> Proxy (be, res)
-> (forall context.
contextPredicate context =>
Proxy context -> Proxy be -> res -> m res)
-> a
-> m a
project' (forall {k} (t :: k). Proxy t
Proxy @AggregateContext) (forall {k} (t :: k). Proxy t
Proxy @(be, WithExprContext (BeamSqlBackendExpressionSyntax' be))) forall c.
AggregateContext c =>
Proxy c
-> Proxy be
-> (TablePrefix -> BeamSqlBackendExpressionSyntax' be)
-> Writer
[TablePrefix -> BeamSqlBackendExpressionSyntax' be]
(TablePrefix -> BeamSqlBackendExpressionSyntax' be)
doProject a
agg)
in case [TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))]
groupingExprs of
[] -> (forall a. Maybe a
Nothing, a
agg)
[TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))]
_ -> (forall a. a -> Maybe a
Just (forall grouping.
IsSql92GroupingSyntax grouping =>
[Sql92GroupingExpressionSyntax grouping] -> grouping
groupByExpressions (forall (t :: * -> *) (f :: * -> *) a.
(Traversable t, Applicative f) =>
t (f a) -> f (t a)
sequenceA [TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))]
groupingExprs TablePrefix
tblPfx)), a
agg)
class QGroupable expr grouped | expr -> grouped, grouped -> expr where
group_ :: expr -> grouped
instance QGroupable (QExpr be s a) (QGroupExpr be s a) where
group_ :: QExpr be s a -> QGroupExpr be s a
group_ (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
a
instance Beamable tbl =>
QGroupable (tbl (QExpr be s)) (tbl (QGroupExpr be s)) where
group_ :: tbl (QExpr be s) -> tbl (QGroupExpr be s)
group_ = forall (table :: (* -> *) -> *) (f :: * -> *) (g :: * -> *).
Beamable table =>
(forall a. Columnar' f a -> Columnar' g a) -> table f -> table g
changeBeamRep (\(Columnar' (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
x)) -> forall (f :: * -> *) a. Columnar f a -> Columnar' f a
Columnar' (forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
x))
instance Beamable tbl =>
QGroupable (tbl (Nullable (QExpr be s))) (tbl (Nullable (QGroupExpr be s))) where
group_ :: tbl (Nullable (QExpr be s)) -> tbl (Nullable (QGroupExpr be s))
group_ = forall (table :: (* -> *) -> *) (f :: * -> *) (g :: * -> *).
Beamable table =>
(forall a. Columnar' f a -> Columnar' g a) -> table f -> table g
changeBeamRep (\(Columnar' (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
x)) -> forall (f :: * -> *) a. Columnar f a -> Columnar' f a
Columnar' (forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
x))
allInGroup_ :: IsSql92AggregationSetQuantifierSyntax s
=> Maybe s
allInGroup_ :: forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_ = forall a. Maybe a
Nothing
distinctInGroup_ :: IsSql92AggregationSetQuantifierSyntax s
=> Maybe s
distinctInGroup_ :: forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
distinctInGroup_ = forall a. a -> Maybe a
Just forall q. IsSql92AggregationSetQuantifierSyntax q => q
setQuantifierDistinct
allInGroupExplicitly_ :: IsSql92AggregationSetQuantifierSyntax s
=> Maybe s
allInGroupExplicitly_ :: forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroupExplicitly_ = forall a. a -> Maybe a
Just forall q. IsSql92AggregationSetQuantifierSyntax q => q
setQuantifierAll
min_ :: BeamSqlBackend be
=> QExpr be s a -> QAgg be s (Maybe a)
min_ :: forall be s a.
BeamSqlBackend be =>
QExpr be s a -> QAgg be s (Maybe a)
min_ = forall be s a.
BeamSqlBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
minOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_
max_ :: BeamSqlBackend be
=> QExpr be s a -> QAgg be s (Maybe a)
max_ :: forall be s a.
BeamSqlBackend be =>
QExpr be s a -> QAgg be s (Maybe a)
max_ = forall be s a.
BeamSqlBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
maxOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_
avg_ :: ( BeamSqlBackend be, Num a )
=> QExpr be s a -> QAgg be s (Maybe a)
avg_ :: forall be a s.
(BeamSqlBackend be, Num a) =>
QExpr be s a -> QAgg be s (Maybe a)
avg_ = forall be a s.
(BeamSqlBackend be, Num a) =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
avgOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_
sum_ :: ( BeamSqlBackend be, Num a )
=> QExpr be s a -> QAgg be s (Maybe a)
sum_ :: forall be a s.
(BeamSqlBackend be, Num a) =>
QExpr be s a -> QAgg be s (Maybe a)
sum_ = forall be a s.
(BeamSqlBackend be, Num a) =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
sumOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_
countAll_ :: ( BeamSqlBackend be, Integral a ) => QAgg be s a
countAll_ :: forall be a s. (BeamSqlBackend be, Integral a) => QAgg be s a
countAll_ = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall expr. IsSql92AggregationExpressionSyntax expr => expr
countAllE)
count_ :: ( BeamSqlBackend be, Integral b )
=> QExpr be s a -> QAgg be s b
count_ :: forall be b s a.
(BeamSqlBackend be, Integral b) =>
QExpr be s a -> QAgg be s b
count_ (QExpr TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
over) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql92AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
countE forall a. Maybe a
Nothing forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
over)
cumeDist_ :: BeamSqlT612Backend be
=> QAgg be s Double
cumeDist_ :: forall be s. BeamSqlT612Backend be => QAgg be s Double
cumeDist_ = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall expr.
IsSql2003ExpressionAdvancedOLAPOperationsSyntax expr =>
expr
cumeDistAggE)
percentRank_ :: BeamSqlT612Backend be
=> QAgg be s Double
percentRank_ :: forall be s. BeamSqlT612Backend be => QAgg be s Double
percentRank_ = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall expr.
IsSql2003ExpressionAdvancedOLAPOperationsSyntax expr =>
expr
percentRankAggE)
denseRank_ :: ( BeamSqlT612Backend be, Integral a )
=> QAgg be s a
denseRank_ :: forall be a s. (BeamSqlT612Backend be, Integral a) => QAgg be s a
denseRank_ = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall expr.
IsSql2003ExpressionAdvancedOLAPOperationsSyntax expr =>
expr
denseRankAggE)
rowNumber_ :: ( BeamSql2003ExpressionBackend be, Integral a )
=> QAgg be s a
rowNumber_ :: forall be a s.
(BeamSql2003ExpressionBackend be, Integral a) =>
QAgg be s a
rowNumber_ = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall expr. IsSql2003ExpressionSyntax expr => expr
rowNumberE)
rank_ :: ( BeamSqlT611Backend be, Integral a )
=> QAgg be s a
rank_ :: forall be a s. (BeamSqlT611Backend be, Integral a) => QAgg be s a
rank_ = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall expr.
IsSql2003ExpressionElementaryOLAPOperationsSyntax expr =>
expr
rankAggE)
minOver_, maxOver_
:: BeamSqlBackend be
=> Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
minOver_ :: forall be s a.
BeamSqlBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
minOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql92AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
minE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a)
maxOver_ :: forall be s a.
BeamSqlBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
maxOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql92AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
maxE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a)
avgOver_, sumOver_
:: ( BeamSqlBackend be, Num a )
=> Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
avgOver_ :: forall be a s.
(BeamSqlBackend be, Num a) =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
avgOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql92AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
avgE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a)
sumOver_ :: forall be a s.
(BeamSqlBackend be, Num a) =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s (Maybe a)
sumOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql92AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
sumE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a)
countOver_
:: ( BeamSqlBackend be, Integral b )
=> Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s b
countOver_ :: forall be b s a.
(BeamSqlBackend be, Integral b) =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s a -> QAgg be s b
countOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql92AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
countE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix
-> Sql92SelectTableExpressionSyntax
(Sql92SelectSelectTableSyntax
(Sql92SelectSyntax (BeamSqlBackendSyntax be)))
a)
everyOver_, someOver_, anyOver_
:: BeamSql99AggregationBackend be
=> Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
everyOver_ :: forall be s.
BeamSql99AggregationBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
everyOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql99AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
everyE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix -> BeamSqlBackendExpressionSyntax be
a)
someOver_ :: forall be s.
BeamSql99AggregationBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
someOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql99AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
someE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix -> BeamSqlBackendExpressionSyntax be
a)
anyOver_ :: forall be s.
BeamSql99AggregationBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
anyOver_ Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
a) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall expr.
IsSql99AggregationExpressionSyntax expr =>
Maybe (Sql92AggregationSetQuantifierSyntax expr) -> expr -> expr
anyE Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
q forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TablePrefix -> BeamSqlBackendExpressionSyntax be
a)
filterWhere_ :: BeamSqlT611Backend be
=> QAgg be s a -> QExpr be s Bool -> QAgg be s a
filterWhere_ :: forall be s a.
BeamSqlT611Backend be =>
QAgg be s a -> QExpr be s Bool -> QAgg be s a
filterWhere_ QAgg be s a
agg QExpr be s Bool
cond = forall be s a.
BeamSqlT611Backend be =>
QAgg be s a -> QExpr be s SqlBool -> QAgg be s a
filterWhere_' QAgg be s a
agg (forall context syntax s.
QGenExpr context syntax s Bool -> QGenExpr context syntax s SqlBool
sqlBool_ QExpr be s Bool
cond)
filterWhere_' :: BeamSqlT611Backend be
=> QAgg be s a -> QExpr be s SqlBool -> QAgg be s a
filterWhere_' :: forall be s a.
BeamSqlT611Backend be =>
QAgg be s a -> QExpr be s SqlBool -> QAgg be s a
filterWhere_' (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
agg) (QExpr TablePrefix -> BeamSqlBackendExpressionSyntax be
cond) = forall context be s t.
(TablePrefix -> BeamSqlBackendExpressionSyntax be)
-> QGenExpr context be s t
QExpr (forall (f :: * -> *) a b c.
Applicative f =>
(a -> b -> c) -> f a -> f b -> f c
liftA2 forall expr.
IsSql2003ExpressionElementaryOLAPOperationsSyntax expr =>
expr -> expr -> expr
filterAggE TablePrefix -> BeamSqlBackendExpressionSyntax be
agg TablePrefix -> BeamSqlBackendExpressionSyntax be
cond)
every_ :: BeamSql99AggregationBackend be
=> QExpr be s SqlBool -> QAgg be s SqlBool
every_ :: forall be s.
BeamSql99AggregationBackend be =>
QExpr be s SqlBool -> QAgg be s SqlBool
every_ = forall be s.
BeamSql99AggregationBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
everyOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_
some_ :: BeamSql99AggregationBackend be
=> QExpr be s SqlBool -> QAgg be s SqlBool
some_ :: forall be s.
BeamSql99AggregationBackend be =>
QExpr be s SqlBool -> QAgg be s SqlBool
some_ = forall be s.
BeamSql99AggregationBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
someOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_
any_ :: BeamSql99AggregationBackend be
=> QExpr be s SqlBool -> QAgg be s SqlBool
any_ :: forall be s.
BeamSql99AggregationBackend be =>
QExpr be s SqlBool -> QAgg be s SqlBool
any_ = forall be s.
BeamSql99AggregationBackend be =>
Maybe (BeamSqlBackendAggregationQuantifierSyntax be)
-> QExpr be s SqlBool -> QAgg be s SqlBool
anyOver_ forall s. IsSql92AggregationSetQuantifierSyntax s => Maybe s
allInGroup_