@@ -149,7 +149,12 @@ def run_query(self, query, user):
149
149
column_tuples = [(i [0 ], _TYPE_MAPPINGS .get (i [1 ], None )) for i in cursor .description ]
150
150
columns = self .fetch_columns (column_tuples )
151
151
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 }
153
158
json_data = json .dumps (data , cls = JSONEncoder )
154
159
error = None
155
160
except KeyboardInterrupt :
@@ -269,10 +274,6 @@ def run_query(self, query, user):
269
274
rows .extend (result ['ResultSet' ]['ResultRows' ])
270
275
cnames = [c ['Name' ] for c in column_info ]
271
276
272
- #get data scanned in query
273
- query_execution = client .get_query_execution (response ['QueryExecutionId' ])
274
- qbytes = query_execution ['QueryExecutionDetail' ]['Stats' ]['ProcessedBytes' ]
275
-
276
277
data = {'columns' :
277
278
[{
278
279
'name' : name ,
@@ -282,9 +283,7 @@ def run_query(self, query, user):
282
283
'rows' :
283
284
[{
284
285
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 :]]
288
287
}
289
288
290
289
return json .dumps (data , cls = JSONEncoder ), None
0 commit comments