You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2018/08/14 05:33:31 UTC

[incubator-superset] branch master updated: No exception on no data (#5597)

This is an automated email from the ASF dual-hosted git repository.

maximebeauchemin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 763eeca  No exception on no data (#5597)
763eeca is described below

commit 763eeca75a8243fb5397debecc31e360732de3ea
Author: Beto Dealmeida <ro...@dealmeida.net>
AuthorDate: Mon Aug 13 22:33:29 2018 -0700

    No exception on no data (#5597)
    
    * No exception on no data
    
    * Remove unreachable exception
---
 superset/connectors/druid/models.py | 6 +++++-
 superset/models/core.py             | 7 ++++++-
 superset/viz.py                     | 1 -
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py
index 0554dfa..824d7c9 100644
--- a/superset/connectors/druid/models.py
+++ b/superset/connectors/druid/models.py
@@ -20,6 +20,7 @@ from flask import escape, Markup
 from flask_appbuilder import Model
 from flask_appbuilder.models.decorators import renders
 from flask_babel import lazy_gettext as _
+import pandas
 from pydruid.client import PyDruid
 from pydruid.utils.aggregators import count
 from pydruid.utils.dimensions import MapLookupExtraction, RegexExtraction
@@ -1346,7 +1347,10 @@ class DruidDatasource(Model, BaseDatasource):
         df = client.export_pandas()
 
         if df is None or df.size == 0:
-            raise Exception(_('No data was returned.'))
+            return QueryResult(
+                df=pandas.DataFrame([]),
+                query=query_str,
+                duration=datetime.now() - qry_start_dttm)
 
         df = self.homogenize_types(df, query_obj.get('groupby', []))
         df.columns = [
diff --git a/superset/models/core.py b/superset/models/core.py
index 05db09f..50f657c 100644
--- a/superset/models/core.py
+++ b/superset/models/core.py
@@ -794,9 +794,14 @@ class Database(Model, AuditMixinNullable, ImportMixin):
 
                 self.db_engine_spec.execute(cursor, sqls[-1])
 
+                if cursor.description is not None:
+                    columns = [col_desc[0] for col_desc in cursor.description]
+                else:
+                    columns = []
+
                 df = pd.DataFrame.from_records(
                     data=list(cursor.fetchall()),
-                    columns=[col_desc[0] for col_desc in cursor.description],
+                    columns=columns,
                     coerce_float=True,
                 )
 
diff --git a/superset/viz.py b/superset/viz.py
index b0a71d5..c295e5a 100644
--- a/superset/viz.py
+++ b/superset/viz.py
@@ -179,7 +179,6 @@ class BaseViz(object):
             return None
 
         self.error_msg = ''
-        self.results = None
 
         timestamp_format = None
         if self.datasource.type == 'table':