diff --git a/redash/query_runner/impala_ds.py b/redash/query_runner/impala_ds.py index 3c6b2897d..4a2c9b33c 100644 --- a/redash/query_runner/impala_ds.py +++ b/redash/query_runner/impala_ds.py @@ -78,24 +78,20 @@ class Impala(BaseSQLQueryRunner): super(Impala, self).__init__(configuration) def _get_tables(self, schema_dict): - try: - schemas_query = "show schemas;" + schemas_query = "show schemas;" + tables_query = "show tables in %s;" + columns_query = "show column stats %s;" - tables_query = "show tables in %s;" + for schema_name in map(lambda a: a['name'], self._run_query_internal(schemas_query)): + for table_name in map(lambda a: a['name'], self._run_query_internal(tables_query % schema_name)): + columns = map(lambda a: a['Column'], self._run_query_internal(columns_query % table_name)) - columns_query = "show column stats %s;" + if schema_name != 'default': + table_name = '{}.{}'.format(schema_name, table_name) - for schema_name in map(lambda a: a['name'], self._run_query_internal(schemas_query)): - for table_name in map(lambda a: a['name'], self._run_query_internal(tables_query % schema_name)): - columns = map(lambda a: a['Column'], self._run_query_internal(columns_query % table_name)) + schema_dict[table_name] = {'name': table_name, 'columns': columns} - if schema_name != 'default': - table_name = '{}.{}'.format(schema_name, table_name) - - schema[table_name] = {'name': table_name, 'columns': columns} - except Exception, e: - raise sys.exc_info()[1], None, sys.exc_info()[2] - return schema.values() + return schema_dict.values() def run_query(self, query):