From c02243a4131356a115a2e4c0c83adbd1b558fab2 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Thu, 26 May 2022 18:34:51 +0000 Subject: [PATCH 1/2] move columns to datasource --- superset/views/core.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/superset/views/core.py b/superset/views/core.py index 12b04dd706c4d..4eb4cb6c79bf6 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -889,11 +889,10 @@ def explore( except (SupersetException, SQLAlchemyError): datasource_data = dummy_datasource_data - columns: List[Dict[str, Any]] = [] if datasource: datasource_data["owners"] = datasource.owners_data if isinstance(datasource, Query): - columns = datasource.extra.get("columns", []) + datasource_data["columns"] = datasource.extra.get("columns", []) bootstrap_data = { "can_add": slice_add_perm, @@ -908,7 +907,6 @@ def explore( "user": bootstrap_user_data(g.user, include_perms=True), "forced_height": request.args.get("height"), "common": common_bootstrap_payload(), - "columns": columns, } if slc: title = slc.slice_name From 3aca9d00cba6cbf87dbaa1697f82d1fea1592ee6 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Thu, 26 May 2022 19:04:44 +0000 Subject: [PATCH 2/2] address concerns --- superset/models/sql_lab.py | 4 ++++ superset/views/core.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/superset/models/sql_lab.py b/superset/models/sql_lab.py index 04d5fc9a94359..74c43718ef781 100644 --- a/superset/models/sql_lab.py +++ b/superset/models/sql_lab.py @@ -166,6 +166,10 @@ def username(self) -> str: def sql_tables(self) -> List[Table]: return list(ParsedQuery(self.sql).tables) + @property + def columns(self) -> List[Table]: + return self.extra.get("columns", []) + def raise_for_access(self) -> None: """ Raise an exception if the user cannot access the resource. diff --git a/superset/views/core.py b/superset/views/core.py index 4eb4cb6c79bf6..f65385fc305a5 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -892,7 +892,7 @@ def explore( if datasource: datasource_data["owners"] = datasource.owners_data if isinstance(datasource, Query): - datasource_data["columns"] = datasource.extra.get("columns", []) + datasource_data["columns"] = datasource.columns bootstrap_data = { "can_add": slice_add_perm,