You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2018/06/01 06:34:50 UTC
[incubator-superset] branch master updated: updating adhoc metric
filtering (#5105)
This is an automated email from the ASF dual-hosted git repository.
johnbodley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push:
new cc0942a updating adhoc metric filtering (#5105)
cc0942a is described below
commit cc0942ac988fc09538da14495f05411fcf2ac5e8
Author: Gabe Lyons <ga...@airbnb.com>
AuthorDate: Thu May 31 23:34:48 2018 -0700
updating adhoc metric filtering (#5105)
---
.../explore/components/MetricsControl_spec.jsx | 21 +++++++++++++++++----
.../explore/components/controls/MetricsControl.jsx | 4 ++--
superset/assets/src/explore/constants.js | 1 +
3 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx b/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
index 5d2e1e3..9aa553c 100644
--- a/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
+++ b/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
@@ -211,8 +211,8 @@ describe('MetricsControl', () => {
expect(!!wrapper.instance().selectFilterOption(
{
- metric_name: 'a_metric',
- optionName: 'a_metric',
+ metric_name: 'avg__metric',
+ optionName: 'avg__metric',
expression: 'AVG(metric)',
},
'a',
@@ -238,14 +238,27 @@ describe('MetricsControl', () => {
expect(!!wrapper.instance().selectFilterOption(
{
- metric_name: 'a_metric',
- optionName: 'a_metric',
+ metric_name: 'avg__metric',
+ optionName: 'avg__metric',
expression: 'AVG(metric)',
},
'a',
)).to.be.false;
});
+ it('includes custom made simple saved metrics', () => {
+ const { wrapper } = setup();
+
+ expect(!!wrapper.instance().selectFilterOption(
+ {
+ metric_name: 'my_fancy_sum_metric',
+ optionName: 'my_fancy_sum_metric',
+ expression: 'SUM(value)',
+ },
+ 'sum',
+ )).to.be.true;
+ });
+
it('excludes auto generated metrics', () => {
const { wrapper } = setup();
diff --git a/superset/assets/src/explore/components/controls/MetricsControl.jsx b/superset/assets/src/explore/components/controls/MetricsControl.jsx
index b7ed1f2..bc0b72a 100644
--- a/superset/assets/src/explore/components/controls/MetricsControl.jsx
+++ b/superset/assets/src/explore/components/controls/MetricsControl.jsx
@@ -13,7 +13,7 @@ import savedMetricType from '../../propTypes/savedMetricType';
import adhocMetricType from '../../propTypes/adhocMetricType';
import {
AGGREGATES,
- sqlaAutoGeneratedMetricRegex,
+ sqlaAutoGeneratedMetricNameRegex,
druidAutoGeneratedMetricRegex,
} from '../../constants';
@@ -210,7 +210,7 @@ export default class MetricsControl extends React.PureComponent {
if (this.props.datasourceType === 'druid') {
return druidAutoGeneratedMetricRegex.test(savedMetric.verbose_name);
}
- return sqlaAutoGeneratedMetricRegex.test(savedMetric.expression);
+ return sqlaAutoGeneratedMetricNameRegex.test(savedMetric.metric_name);
}
selectFilterOption(option, filterValue) {
diff --git a/superset/assets/src/explore/constants.js b/superset/assets/src/explore/constants.js
index 9a8acc8..39d7063 100644
--- a/superset/assets/src/explore/constants.js
+++ b/superset/assets/src/explore/constants.js
@@ -32,5 +32,6 @@ export const HAVING_OPERATORS = [
];
export const MULTI_OPERATORS = [OPERATORS.in, OPERATORS['not in']];
+export const sqlaAutoGeneratedMetricNameRegex = /^(sum|min|max|avg|count|count_distinct)__.*$/i;
export const sqlaAutoGeneratedMetricRegex = /^(LONG|DOUBLE|FLOAT)?(SUM|AVG|MAX|MIN|COUNT)\([A-Z0-9_."]*\)$/i;
export const druidAutoGeneratedMetricRegex = /^(LONG|DOUBLE|FLOAT)?(SUM|MAX|MIN|COUNT)\([A-Z0-9_."]*\)$/i;
--
To stop receiving notification emails like this one, please contact
johnbodley@apache.org.