From 9857d041fa40a1f06284705885f7d55c49edea64 Mon Sep 17 00:00:00 2001 From: Grace Guo Date: Tue, 19 Mar 2019 11:58:11 -0700 Subject: [PATCH] handle null column_name in sqla and druid models --- superset/connectors/base/models.py | 6 ++++-- superset/connectors/druid/models.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index 39cc5853d6f66..958bea00e4dc9 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -86,7 +86,7 @@ def uid(self): @property def column_names(self): - return sorted([c.column_name for c in self.columns]) + return sorted([c.column_name for c in self.columns], key=lambda x: x or '') @property def columns_types(self): @@ -166,7 +166,9 @@ def select_star(self): def data(self): """Data representation of the datasource sent to the frontend""" order_by_choices = [] - for s in sorted(self.column_names): + # self.column_names return sorted column_names + for s in self.column_names: + s = str(s or '') order_by_choices.append((json.dumps([s, True]), s + ' [asc]')) order_by_choices.append((json.dumps([s, False]), s + ' [desc]')) diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py index 577679092c09b..7716f2e8284e9 100644 --- a/superset/connectors/druid/models.py +++ b/superset/connectors/druid/models.py @@ -280,7 +280,7 @@ class DruidColumn(Model, BaseColumn): export_parent = 'datasource' def __repr__(self): - return self.column_name + return self.column_name or str(self.id) @property def expression(self):