@@ -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