diff --git a/src/sentry/discover/compare_tables.py b/src/sentry/discover/compare_tables.py index a5dee8e6b89db8..f8c4c7ec46fb36 100644 --- a/src/sentry/discover/compare_tables.py +++ b/src/sentry/discover/compare_tables.py @@ -150,7 +150,21 @@ def compare_tables_for_dashboard_widget_queries( "query": None, } - fields = widget_query.fields + aggregates = widget_query.aggregates + columns = widget_query.columns + query_fields = widget_query.fields + + fields_set = set() + + if aggregates: + fields_set.update(aggregates) + if columns: + fields_set.update(columns) + if query_fields: + fields_set.update(query_fields) + + fields = list(fields_set) + if len(fields) == 0: with sentry_sdk.isolation_scope() as scope: scope.set_tag("passed", False) diff --git a/tests/sentry/discover/test_compare_tables.py b/tests/sentry/discover/test_compare_tables.py index 7c25e71a3c42bf..4e43d245e4574d 100644 --- a/tests/sentry/discover/test_compare_tables.py +++ b/tests/sentry/discover/test_compare_tables.py @@ -358,3 +358,25 @@ def test_compare_widget_query_with_no_metrics_data(self) -> None: comparison_result = compare_tables_for_dashboard_widget_queries(widget_query) assert comparison_result["passed"] is True + + def test_compare_widget_query_with_no_fields(self) -> None: + widget = DashboardWidget.objects.create( + dashboard=self.dashboard, + title="Test No Fields Widget", + order=1, + display_type=DashboardWidgetDisplayTypes.TABLE, + widget_type=DashboardWidgetTypes.TRANSACTION_LIKE, + ) + + widget_query = DashboardWidgetQuery.objects.create( + widget=widget, + name="", + order=0, + conditions="", + aggregates=["count()"], + columns=[], + fields=[], + ) + + comparison_result = compare_tables_for_dashboard_widget_queries(widget_query) + assert comparison_result["passed"] is True