(
ns
metabase.query-processor.middleware.pre-alias-aggregations
:require
[
metabase.driver
:as
driver
]
metabase.legacy-mbql.util
mbql.u
metabase.query-processor.middleware.annotate
annotate
)
defn-
ag-name
inner-query
ag-clause
driver/escape-alias
driver/*driver*
annotate/aggregation-name
pre-alias-and-uniquify
aggregations
mapv
fn
original-ag
updated-ag
if
=
with-meta
{
:auto-generated?
true
}
mbql.u/pre-alias-and-uniquify-aggregations
partial
Make sure all aggregations have aliases, and all aliases are unique, in an 'inner' MBQL query.
defn
pre-alias-aggregations-in-inner-query
:keys
aggregation
source-query
joins
,
cond->
seq
update
:aggregation
:source-query
:joins
Middleware that generates aliases for all aggregations anywhere in a query, and makes sure they're unique.
pre-alias-aggregations
query-type
:type
query
if-not
:query