Skip to content

Commit d7b6409

Browse files
authored
Merge pull request #120 from alison985/115_fix_athena_direct_query_failure
115 fix athena direct query failure
2 parents 7b733ef + 0ffbe32 commit d7b6409

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

redash/query_runner/athena.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,12 @@ def run_query(self, query, user):
149149
column_tuples = [(i[0], _TYPE_MAPPINGS.get(i[1], None)) for i in cursor.description]
150150
columns = self.fetch_columns(column_tuples)
151151
rows = [dict(zip(([c['name'] for c in columns]), r)) for i, r in enumerate(cursor.fetchall())]
152-
data = {'columns': columns, 'rows': rows}
152+
qbytes = None
153+
try:
154+
qbytes = cursor.data_scanned_in_bytes()
155+
except AttributeError as e:
156+
debug("Athena Direct can't get data_scanned_in_bytes: %s", e)
157+
data = { 'columns': columns, 'rows': rows, 'data_scanned': qbytes }
153158
json_data = json.dumps(data, cls=JSONEncoder)
154159
error = None
155160
except KeyboardInterrupt:
@@ -269,10 +274,6 @@ def run_query(self, query, user):
269274
rows.extend(result['ResultSet']['ResultRows'])
270275
cnames = [c['Name'] for c in column_info]
271276

272-
#get data scanned in query
273-
query_execution = client.get_query_execution(response['QueryExecutionId'])
274-
qbytes = query_execution['QueryExecutionDetail']['Stats']['ProcessedBytes']
275-
276277
data = {'columns':
277278
[{
278279
'name': name,
@@ -282,9 +283,7 @@ def run_query(self, query, user):
282283
'rows':
283284
[{
284285
name: row['Data'][i] for (i, name) in enumerate(cnames)
285-
} for row in rows[1:]],
286-
'data_scanned':
287-
[{ qbytes }]
286+
} for row in rows[1:]]
288287
}
289288

290289
return json.dumps(data, cls=JSONEncoder), None

0 commit comments

Comments
 (0)