|
@@ -78,16 +78,15 @@ module Blazer
|
|
end
|
|
end
|
|
end
|
|
end
|
|
elsif resp
|
|
elsif resp
|
|
- # failed, get message
|
|
|
|
- resp2 = client.get_query_execution(
|
|
|
|
- query_execution_id: query_execution_id
|
|
|
|
- )
|
|
|
|
- error = resp2.query_execution.status.state_change_reason
|
|
|
|
|
|
+ error = fetch_error(query_execution_id)
|
|
else
|
|
else
|
|
error = Blazer::TIMEOUT_MESSAGE
|
|
error = Blazer::TIMEOUT_MESSAGE
|
|
end
|
|
end
|
|
rescue Aws::Athena::Errors::InvalidRequestException => e
|
|
rescue Aws::Athena::Errors::InvalidRequestException => e
|
|
error = e.message
|
|
error = e.message
|
|
|
|
+ if error == "Query did not finish successfully. Final query state: FAILED"
|
|
|
|
+ error = fetch_error(query_execution_id)
|
|
|
|
+ end
|
|
end
|
|
end
|
|
|
|
|
|
[columns, rows, error]
|
|
[columns, rows, error]
|
|
@@ -111,6 +110,12 @@ module Blazer
|
|
@database ||= settings["database"] || "default"
|
|
@database ||= settings["database"] || "default"
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+ def fetch_error(query_execution_id)
|
|
|
|
+ client.get_query_execution(
|
|
|
|
+ query_execution_id: query_execution_id
|
|
|
|
+ ).query_execution.status.state_change_reason
|
|
|
|
+ end
|
|
|
|
+
|
|
def client
|
|
def client
|
|
@client ||= Aws::Athena::Client.new
|
|
@client ||= Aws::Athena::Client.new
|
|
end
|
|
end
|