From 7c4a2d8bc92024e1d735e62174f8501a7ab053f9 Mon Sep 17 00:00:00 2001 From: Roger Hunwicks Date: Tue, 5 Dec 2017 20:22:07 +0200 Subject: [PATCH] Restore datasource count metric for PandasDatasource - see #3302 --- contrib/connectors/pandas/models.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/contrib/connectors/pandas/models.py b/contrib/connectors/pandas/models.py index 8186e67d36940..52fb62c274e80 100644 --- a/contrib/connectors/pandas/models.py +++ b/contrib/connectors/pandas/models.py @@ -825,6 +825,27 @@ def get_metadata(self): if not any_date_col and dbcol.is_time: any_date_col = col + # Datasource-level metrics + # Note that column-specific metrics are created by reconcile_column_metrics + # when the column is created. + metrics = [ + PandasMetric( + metric_name='count', + verbose_name='count', + metric_type='count', + source=None, + expression='count')] + dbmetrics = ( + db.session.query(PandasMetric) + .filter(PandasMetric.datasource == self) + .filter(or_(PandasMetric.metric_name == metric.metric_name + for metric in metrics))) + dbmetrics = {metric.metric_name: metric for metric in dbmetrics} + for metric in metrics: + if not dbmetrics.get(metric.metric_name, None): + metric.pandas_datasource_id = self.id + db.session.add(metric) + if not self.main_dttm_col: self.main_dttm_col = any_date_col