You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by er...@apache.org on 2020/01/06 19:15:28 UTC
[incubator-superset] 01/01: Revert "Make select_star work with SQL
Lab views (#8598)"
This is an automated email from the ASF dual-hosted git repository.
erikrit pushed a commit to branch revert-8598-VIZ-1194
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
commit 39047f263fdf6e3e6f3574987141b3e52accf0b0
Author: Erik Ritter <er...@airbnb.com>
AuthorDate: Mon Jan 6 11:15:14 2020 -0800
Revert "Make select_star work with SQL Lab views (#8598)"
This reverts commit 964e6db800614b32b47eb2f6e6f648c188872967.
---
superset/connectors/sqla/models.py | 6 +-----
superset/db_engine_specs/base.py | 27 +++++++++++----------------
superset/db_engine_specs/hive.py | 2 --
superset/db_engine_specs/presto.py | 2 --
superset/models/core.py | 2 --
5 files changed, 12 insertions(+), 27 deletions(-)
diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py
index 4930a30..deee43f 100644
--- a/superset/connectors/sqla/models.py
+++ b/superset/connectors/sqla/models.py
@@ -530,11 +530,7 @@ class SqlaTable(Model, BaseDatasource):
# show_cols and latest_partition set to false to avoid
# the expensive cost of inspecting the DB
return self.database.select_star(
- self.table_name,
- sql=self.sql,
- schema=self.schema,
- show_cols=False,
- latest_partition=False,
+ self.table_name, schema=self.schema, show_cols=False, latest_partition=False
)
@property
diff --git a/superset/db_engine_specs/base.py b/superset/db_engine_specs/base.py
index 77d5aae..a1b31e5 100644
--- a/superset/db_engine_specs/base.py
+++ b/superset/db_engine_specs/base.py
@@ -611,7 +611,6 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
database,
table_name: str,
engine: Engine,
- sql: Optional[str] = None,
schema: Optional[str] = None,
limit: int = 100,
show_cols: bool = False,
@@ -624,7 +623,6 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
:param database: Database instance
:param table_name: Table name
- :param sql: SQL defining a subselect
:param engine: SqlALchemy Engine instance
:param schema: Schema
:param limit: limit to impose on query
@@ -634,23 +632,20 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
:param cols: Columns to include in query
:return: SQL query
"""
+ fields = "*"
+ cols = cols or []
+ if (show_cols or latest_partition) and not cols:
+ cols = database.get_columns(table_name, schema)
+
+ if show_cols:
+ fields = cls._get_fields(cols)
quote = engine.dialect.identifier_preparer.quote
if schema:
full_table_name = quote(schema) + "." + quote(table_name)
else:
full_table_name = quote(table_name)
- if sql is not None:
- subselect = f"(\n{sql}\n) AS {quote(table_name)}"
- qry = select("*").select_from(text(subselect))
- else:
- fields = "*"
- cols = cols or []
- if (show_cols or latest_partition) and not cols:
- cols = database.get_columns(table_name, schema)
- if show_cols:
- fields = cls._get_fields(cols)
- qry = select(fields).select_from(text(full_table_name))
+ qry = select(fields).select_from(text(full_table_name))
if limit:
qry = qry.limit(limit)
@@ -660,10 +655,10 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods
)
if partition_query is not None:
qry = partition_query
- select_star_query = database.compile_sqla_query(qry)
+ sql = database.compile_sqla_query(qry)
if indent:
- select_star_query = sqlparse.format(select_star_query, reindent=True)
- return select_star_query
+ sql = sqlparse.format(sql, reindent=True)
+ return sql
@classmethod
def estimate_statement_cost(
diff --git a/superset/db_engine_specs/hive.py b/superset/db_engine_specs/hive.py
index fd2c85d..7c680cb 100644
--- a/superset/db_engine_specs/hive.py
+++ b/superset/db_engine_specs/hive.py
@@ -354,7 +354,6 @@ class HiveEngineSpec(PrestoEngineSpec):
database,
table_name: str,
engine: Engine,
- sql: Optional[str] = None,
schema: str = None,
limit: int = 100,
show_cols: bool = False,
@@ -368,7 +367,6 @@ class HiveEngineSpec(PrestoEngineSpec):
database,
table_name,
engine,
- sql,
schema,
limit,
show_cols,
diff --git a/superset/db_engine_specs/presto.py b/superset/db_engine_specs/presto.py
index 0cf48a3..2bfe255 100644
--- a/superset/db_engine_specs/presto.py
+++ b/superset/db_engine_specs/presto.py
@@ -394,7 +394,6 @@ class PrestoEngineSpec(BaseEngineSpec):
database,
table_name: str,
engine: Engine,
- sql: Optional[str] = None,
schema: str = None,
limit: int = 100,
show_cols: bool = False,
@@ -418,7 +417,6 @@ class PrestoEngineSpec(BaseEngineSpec):
database,
table_name,
engine,
- sql,
schema,
limit,
show_cols,
diff --git a/superset/models/core.py b/superset/models/core.py
index 5730add..d489e01 100755
--- a/superset/models/core.py
+++ b/superset/models/core.py
@@ -383,7 +383,6 @@ class Database(
def select_star( # pylint: disable=too-many-arguments
self,
table_name: str,
- sql: Optional[str] = None,
schema: Optional[str] = None,
limit: int = 100,
show_cols: bool = False,
@@ -398,7 +397,6 @@ class Database(
return self.db_engine_spec.select_star(
self,
table_name,
- sql=sql,
schema=schema,
engine=eng,
limit=limit,