Skip to content
Snippets Groups Projects
Commit 7bcd701a authored by Cam Saul's avatar Cam Saul
Browse files

Include settings for ag fields in QP response

parent 043c4673
No related branches found
No related tags found
No related merge requests found
......@@ -160,7 +160,8 @@
:field-name field-name
:field-display-name field-name
:base-type (:base-type ag-field)
:special-type (:special-type ag-field)})
:special-type (:special-type ag-field)
:settings (:settings ag-field)})
;; Always treat count or distinct count as an integer even if the DB in question returns it as something
;; wacky like a BigDecimal or Float
(when (contains? #{:count :distinct} ag-type)
......
......@@ -282,7 +282,8 @@
:extra_info {}
:target nil
:remapped_from nil
:remapped_to nil}))
:remapped_to nil
:settings nil}))
([ag-col-kw {:keys [base_type special_type]}]
{:pre [base_type special_type]}
{:base_type base_type
......@@ -296,7 +297,8 @@
:name (name ag-col-kw)
:display_name (name ag-col-kw)
:remapped_from nil
:remapped_to nil}))
:remapped_to nil
:settings nil}))
(defn breakout-col [column]
(assoc column :source :breakout))
......
(ns metabase.query-processor-test.aggregation-test
"Tests for MBQL aggregations."
(:require [metabase
(:require [expectations :refer [expect]]
[metabase
[query-processor-test :refer :all]
[util :as u]]
[metabase.models.field :refer [Field]]
[metabase.test
[data :as data]
[util :as tu]]
[metabase.test.data.datasets :as datasets]))
[metabase.test.data.datasets :as datasets]
[toucan.util.test :as tt]))
;;; ---------------------------------------------- "COUNT" AGGREGATION -----------------------------------------------
......@@ -308,7 +311,7 @@
tu/round-fingerprint-cols))
;;; Cumulative count w/ a different breakout field that requires grouping
;; Cumulative count w/ a different breakout field that requires grouping
(qp-expect-with-all-engines
{:columns [(data/format-name "price")
"count"]
......@@ -324,3 +327,16 @@
:breakout [$price]})
booleanize-native-form
(format-rows-by [int int])))
;; Does Field.settings show up for aggregate Fields?
(expect
(assoc (aggregate-col :sum (Field (data/id :venues :price)))
:settings {:is_priceless false})
(tt/with-temp Field [copy-of-venues-price (-> (Field (data/id :venues :price))
(dissoc :id)
(assoc :settings {:is_priceless false}))]
(let [results (data/run-mbql-query venues
{:aggregation [[:sum [:field-id (u/get-id copy-of-venues-price)]]]})]
(or (-> results :data :cols first)
results))))
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