Skip to content
Snippets Groups Projects
Unverified Commit 4be174bf authored by Cam Saul's avatar Cam Saul Committed by GitHub
Browse files

Fix display name for cumulative count without column (#31271)

parent 6709a06c
No related branches found
No related tags found
No related merge requests found
......@@ -66,20 +66,34 @@
[query stage-number [_tag _opts index] style]
(lib.metadata.calculation/display-name query stage-number (resolve-aggregation query stage-number index) style))
(defmethod lib.metadata.calculation/display-name-method :count
[query stage-number [_count _opts x] style]
(lib.hierarchy/derive ::count-aggregation ::aggregation)
;;; count and cumulative count can both be used either with no args (count of rows) or with one arg (count of X, which
;;; I think means count where X is not NULL or something like that. Basically `count(x)` in SQL)
(doseq [tag [:count
:cum-count]]
(lib.hierarchy/derive tag ::count-aggregation))
(defmethod lib.metadata.calculation/display-name-method ::count-aggregation
[query stage-number [tag _opts x] style]
;; x is optional.
(if x
(i18n/tru "Count of {0}" (lib.metadata.calculation/display-name query stage-number x style))
(i18n/tru "Count")))
(let [x-display-name (lib.metadata.calculation/display-name query stage-number x style)]
(case tag
:count (i18n/tru "Count of {0}" x-display-name)
:cum-count (i18n/tru "Cumulative count of {0}" x-display-name)))
(case tag
:count (i18n/tru "Count")
:cum-count (i18n/tru "Cumulative count"))))
(defmethod lib.metadata.calculation/column-name-method :count
[query stage-number [_count _opts x]]
(if x
(str "count_" (lib.metadata.calculation/column-name query stage-number x))
"count"))
(lib.hierarchy/derive :count ::aggregation)
[query stage-number [tag _opts x]]
(let [prefix (case tag
:count "count"
:cum-count "cum_count")]
(if x
(str prefix \_ (lib.metadata.calculation/column-name query stage-number x))
prefix)))
(defmethod lib.metadata.calculation/display-name-method :case
[_query _stage-number _case _style]
......@@ -89,10 +103,11 @@
[_query _stage-number _case]
"case")
;;; TODO - Should `:case` derive from `::aggregation` as well???
(lib.hierarchy/derive ::unary-aggregation ::aggregation)
(doseq [tag [:avg
:cum-count
:cum-sum
:distinct
:max
......@@ -109,7 +124,6 @@
(str
(case tag
:avg "avg_"
:cum-count "cum_count_"
:cum-sum "cum_sum_"
:distinct "distinct_"
:max "max_"
......@@ -125,7 +139,6 @@
(let [arg (lib.metadata.calculation/display-name query stage-number arg style)]
(case tag
:avg (i18n/tru "Average of {0}" arg)
:cum-count (i18n/tru "Cumulative count of {0}" arg)
:cum-sum (i18n/tru "Cumulative sum of {0}" arg)
:distinct (i18n/tru "Distinct values of {0}" arg)
:max (i18n/tru "Max of {0}" arg)
......
......@@ -73,7 +73,9 @@
stddev
sum
sum-where
var]
var
cum-count
cum-sum]
[lib.binning
available-binning-strategies
binning
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment