fix: add get_column function for Query obj (#21691)

This commit is contained in:
Hugh A. Miles II
2022-10-05 18:25:44 -04:00
committed by GitHub
parent 7b66e0bb34
commit 51c54b3c9b
2 changed files with 13 additions and 5 deletions

View File

@@ -51,7 +51,6 @@ from superset.models.helpers import (
)
from superset.sql_parse import CtasMethod, ParsedQuery, Table
from superset.sqllab.limiting_factor import LimitingFactor
from superset.superset_typing import ResultSetColumnType
from superset.utils.core import GenericDataType, QueryStatus, user_label
if TYPE_CHECKING:
@@ -183,7 +182,7 @@ class Query(
return list(ParsedQuery(self.sql).tables)
@property
def columns(self) -> List[ResultSetColumnType]:
def columns(self) -> List[Dict[str, Any]]:
bool_types = ("BOOL",)
num_types = (
"DOUBLE",
@@ -217,7 +216,7 @@ class Query(
computed_column["column_name"] = col.get("name")
computed_column["groupby"] = True
columns.append(computed_column)
return columns # type: ignore
return columns
@property
def data(self) -> Dict[str, Any]:
@@ -288,7 +287,7 @@ class Query(
def main_dttm_col(self) -> Optional[str]:
for col in self.columns:
if col.get("is_dttm"):
return col.get("column_name") # type: ignore
return col.get("column_name")
return None
@property
@@ -332,6 +331,14 @@ class Query(
def tracking_url(self, value: str) -> None:
self.tracking_url_raw = value
def get_column(self, column_name: Optional[str]) -> Optional[Dict[str, Any]]:
if not column_name:
return None
for col in self.columns:
if col.get("column_name") == column_name:
return col
return None
class SavedQuery(Model, AuditMixinNullable, ExtraJSONMixin, ImportExportMixin):
"""ORM model for SQL query"""