From efe250d3d110e464d51d51b7d58cb991fa84bf59 Mon Sep 17 00:00:00 2001 From: sinhashubham95 Date: Thu, 17 Nov 2022 08:46:26 +0530 Subject: [PATCH 1/4] fixed unhandled exception for string metric --- superset/connectors/base/models.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index db16ce063c66..2b9e037ea443 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -313,7 +313,9 @@ def data_for_slices( # pylint: disable=too-many-locals metric_names.add(utils.get_metric_name(metric)) if utils.is_adhoc_metric(metric): column_names.add( - (metric.get("column") or {}).get("column_name") + ( + (hasattr(metric, "get") and metric.get("column")) or {} + ).get("column_name") ) # Columns used in query filters From ede54b71896dfc872d1f4e1682dbcc7dac981943 Mon Sep 17 00:00:00 2001 From: sinhashubham95 Date: Sun, 20 Nov 2022 13:47:14 +0530 Subject: [PATCH 2/4] fixed fatal error issue --- superset/connectors/base/models.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index 2b9e037ea443..e73d8d3e1f1b 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -312,11 +312,9 @@ def data_for_slices( # pylint: disable=too-many-locals for metric in utils.get_iterable(form_data.get(metric_param) or []): metric_names.add(utils.get_metric_name(metric)) if utils.is_adhoc_metric(metric): - column_names.add( - ( - (hasattr(metric, "get") and metric.get("column")) or {} - ).get("column_name") - ) + column = metric.get("column") or {} + if hasattr(column, "get") and column.get("column_name"): + column_names.add(column.get("column_name")) # Columns used in query filters column_names.update( From 0a60bc6524689f136c4bd82d967340d8494b5973 Mon Sep 17 00:00:00 2001 From: sinhashubham95 Date: Sun, 20 Nov 2022 14:05:27 +0530 Subject: [PATCH 3/4] fixed column check --- superset/connectors/base/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index e73d8d3e1f1b..521d3742f29d 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -313,7 +313,7 @@ def data_for_slices( # pylint: disable=too-many-locals metric_names.add(utils.get_metric_name(metric)) if utils.is_adhoc_metric(metric): column = metric.get("column") or {} - if hasattr(column, "get") and column.get("column_name"): + if hasattr(column, "get") and "column_name" in column: column_names.add(column.get("column_name")) # Columns used in query filters From 8ec86225e72f80475be1ef4cf76f8b9667e64137 Mon Sep 17 00:00:00 2001 From: Shubham Sinha Date: Mon, 21 Nov 2022 14:43:25 +0530 Subject: [PATCH 4/4] review comments fix Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> --- superset/connectors/base/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index 521d3742f29d..1c9696083bed 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -313,8 +313,8 @@ def data_for_slices( # pylint: disable=too-many-locals metric_names.add(utils.get_metric_name(metric)) if utils.is_adhoc_metric(metric): column = metric.get("column") or {} - if hasattr(column, "get") and "column_name" in column: - column_names.add(column.get("column_name")) + if column_name := column.get("column_name"): + column_names.add(column_name) # Columns used in query filters column_names.update(