diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index 205df32b09c..3c5b18ea990 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -371,7 +371,10 @@ class SqlaTable(Model, BaseDatasource): @property def select_star(self): - return self.database.select_star(self.name, show_cols=True) + # show_cols and latest_partition set to false to avoid + # the expensive cost of inspecting the DB + return self.database.select_star( + self.name, show_cols=False, latest_partition=False) def get_col(self, col_name): columns = self.columns diff --git a/superset/data/__init__.py b/superset/data/__init__.py index 49df42b137b..5334269552a 100644 --- a/superset/data/__init__.py +++ b/superset/data/__init__.py @@ -17,7 +17,7 @@ from sqlalchemy import BigInteger, Date, DateTime, Float, String, Text import geohash import polyline -from superset import app, db, security_manager, utils +from superset import app, db, utils from superset.connectors.connector_registry import ConnectorRegistry from superset.connectors.sqla.models import TableColumn from superset.models import core as models diff --git a/superset/models/core.py b/superset/models/core.py index 8c77814a2ca..13021e7dba7 100644 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -775,7 +775,7 @@ class Database(Model, AuditMixinNullable, ImportMixin): def select_star( self, table_name, schema=None, limit=100, show_cols=False, - indent=True, latest_partition=True, cols=None): + indent=True, latest_partition=False, cols=None): """Generates a ``select *`` statement in the proper dialect""" eng = self.get_sqla_engine(schema=schema) return self.db_engine_spec.select_star(