diff --git a/superset/models/core.py b/superset/models/core.py index 2a46e7dda08..af76b26ce22 100644 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -575,16 +575,19 @@ class Database(Model, AuditMixinNullable): 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] - df = pd.DataFrame(cur.fetchall(), columns=cols) + + 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(list(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():