From fc746aaeb5243948235b7ca94d04c043d9807947 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Wed, 3 May 2017 15:21:02 -0700 Subject: [PATCH 1/2] [sql lab] fix csv export where in query --- superset/models/core.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/superset/models/core.py b/superset/models/core.py index 2a46e7dda086..19cba4cd3309 100644 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -575,16 +575,19 @@ def get_quoter(self): def get_df(self, sql, schema): sql = sql.strip().strip(';') eng = self.get_sqla_engine(schema=schema) - cur = eng.execute(sql, schema=schema) - cols = [col[0] for col in cur.cursor.description] + + conn = eng.raw_connection() + cur = conn.cursor() + cur.execute(sql, **self.db_engine_spec.cursor_execute_kwargs) + + cols = [col[0] for col in cur.description] df = pd.DataFrame(cur.fetchall(), columns=cols) def needs_conversion(df_series): if df_series.empty: return False - for df_type in [list, dict]: - if isinstance(df_series[0], df_type): - return True + if isinstance(df_series[0], (list, dict)): + return True return False for k, v in df.dtypes.iteritems(): From 406bd857b9f449139e76ba9cae149c5be37eb08c Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Thu, 4 May 2017 11:08:01 -0700 Subject: [PATCH 2/2] Prgoress --- superset/models/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/models/core.py b/superset/models/core.py index 19cba4cd3309..af76b26ce226 100644 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -581,7 +581,7 @@ def get_df(self, sql, schema): cur.execute(sql, **self.db_engine_spec.cursor_execute_kwargs) cols = [col[0] for col in cur.description] - df = pd.DataFrame(cur.fetchall(), columns=cols) + df = pd.DataFrame(list(cur.fetchall()), columns=cols) def needs_conversion(df_series): if df_series.empty: