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

Add expression_name to QP cols results

parent 98aaf954
No related branches found
No related tags found
No related merge requests found
......@@ -738,8 +738,8 @@ export default class StructuredQuery extends AtomicQuery {
return ["fk->", column.fk_field_id, column.id];
} else if (column.id != null) {
return ["field-id", column.id];
} else if (column["expression-name"] != null) {
return ["expression", column["expression-name"]];
} else if (column.expression_name != null) {
return ["expression", column.expression_name];
} else if (column.source === "aggregation") {
// FIXME: aggregations > 0?
return ["aggregation", 0];
......
......@@ -53,8 +53,8 @@ export function fieldRefForColumn(column: Column): ?ConcreteField {
} else {
return ["field-id", column.id];
}
} else if (column["expression-name"] != null) {
return ["expression", column["expression-name"]];
} else if (column.expression_name != null) {
return ["expression", column.expression_name];
} else {
return null;
}
......
......@@ -24,7 +24,7 @@ export type Column = {
unit?: DatetimeUnit,
binning_info?: BinningInfo,
fk_field_id?: FieldId,
"expression-name"?: any,
expression_name?: any,
settings?: ColumnSettings,
};
......
......@@ -90,10 +90,12 @@
:display_name (humanization/name->human-readable-name field-name)}
[:expression expression-name]
{:name expression-name
:display_name expression-name
:base_type :type/Float
:special_type :type/Number}
{:name expression-name
:display_name expression-name
:base_type :type/Float
:special_type :type/Number
;; provided so the FE can add easily add sorts and the like when someone clicks a column header
:expression_name expression-name}
[:field-id id]
(dissoc (qp.store/field id) :database_type)
......
......@@ -2,11 +2,11 @@
(:require [expectations :refer [expect]]
[metabase.models.field :refer [Field]]
[metabase.query-processor
[interface :as i]
[store :as qp.store]]
[interface :as qp.i]
[store :as qp.store]
[test-util :as qp.test-util]]
[metabase.query-processor.middleware.annotate :as annotate]
[metabase.test.data :as data]
[metabase.query-processor.interface :as qp.i])
[metabase.test.data :as data])
(:import metabase.driver.h2.H2Driver))
;;; +----------------------------------------------------------------------------------------------------------------+
......@@ -239,3 +239,23 @@
:type :query
:query {:source-table (data/id :venues)
:aggregation [[:count] [:sum] [:count] [:named [:count] "count_2"]]}})))
;; make sure expressions come back with the right set of keys, including `:expression_name` (#8854)
(expect
{:name "discount_price"
:display_name "discount_price"
:base_type :type/Float
:special_type :type/Number
:expression_name "discount_price"
:source :fields}
(-> (qp.test-util/with-everything-store
((annotate/add-column-info (constantly {}))
{:database (data/id)
:type :query
:query (data/$ids [venues {:wrap-field-ids? true}]
{:source-table $$table
:expressions {"discount_price" [:* 0.9 [:field-id $price]]}
:fields [$name [:expression "discount_price"]]
:limit 10})}))
:cols
second))
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