|
@@ -79,12 +79,15 @@ module Blazer
|
|
if @run_id
|
|
if @run_id
|
|
@timestamp = blazer_params[:timestamp].to_i
|
|
@timestamp = blazer_params[:timestamp].to_i
|
|
|
|
|
|
- @columns, @rows, @error, @cached_at = @data_source.run_results(@run_id)
|
|
|
|
- @success = !@rows.nil?
|
|
|
|
|
|
+ @result = @data_source.run_results(@run_id)
|
|
|
|
+ @success = !@result.nil?
|
|
|
|
|
|
if @success
|
|
if @success
|
|
@data_source.delete_results(@run_id)
|
|
@data_source.delete_results(@run_id)
|
|
- @just_cached = !@error && @cached_at.present?
|
|
|
|
|
|
+ @columns = @result.columns
|
|
|
|
+ @rows = @result.rows
|
|
|
|
+ @error = @result.error
|
|
|
|
+ @just_cached = !@result.error && @result.cached_at.present?
|
|
@cached_at = nil
|
|
@cached_at = nil
|
|
params[:data_source] = nil
|
|
params[:data_source] = nil
|
|
render_run
|
|
render_run
|
|
@@ -101,20 +104,28 @@ module Blazer
|
|
@run_id = Blazer.async ? SecureRandom.uuid : nil
|
|
@run_id = Blazer.async ? SecureRandom.uuid : nil
|
|
|
|
|
|
options = {user: blazer_user, query: @query, refresh_cache: params[:check], run_id: @run_id}
|
|
options = {user: blazer_user, query: @query, refresh_cache: params[:check], run_id: @run_id}
|
|
- result = []
|
|
|
|
if Blazer.async && request.format.symbol != :csv
|
|
if Blazer.async && request.format.symbol != :csv
|
|
|
|
+ result = []
|
|
Blazer::RunStatementJob.perform_async(result, @data_source, @statement, options)
|
|
Blazer::RunStatementJob.perform_async(result, @data_source, @statement, options)
|
|
wait_start = Time.now
|
|
wait_start = Time.now
|
|
loop do
|
|
loop do
|
|
sleep(0.02)
|
|
sleep(0.02)
|
|
break if result.any? || Time.now - wait_start > 3
|
|
break if result.any? || Time.now - wait_start > 3
|
|
end
|
|
end
|
|
|
|
+ @result = result.first
|
|
else
|
|
else
|
|
@result = @data_source.run_main_statement(@statement, options)
|
|
@result = @data_source.run_main_statement(@statement, options)
|
|
end
|
|
end
|
|
|
|
|
|
if @result
|
|
if @result
|
|
@data_source.delete_results(@run_id) if @run_id
|
|
@data_source.delete_results(@run_id) if @run_id
|
|
|
|
+
|
|
|
|
+ @columns = @result.columns
|
|
|
|
+ @rows = @result.rows
|
|
|
|
+ @error = @result.error
|
|
|
|
+ @cached_at = @result.cached_at
|
|
|
|
+ @just_cached = @result.just_cached
|
|
|
|
+
|
|
render_run
|
|
render_run
|
|
else
|
|
else
|
|
@timestamp = Time.now.to_i
|
|
@timestamp = Time.now.to_i
|
|
@@ -166,12 +177,6 @@ module Blazer
|
|
end
|
|
end
|
|
|
|
|
|
def render_run
|
|
def render_run
|
|
- @columns = @result.columns
|
|
|
|
- @rows = @result.rows
|
|
|
|
- @error = @result.error
|
|
|
|
- @cached_at = @result.cached_at
|
|
|
|
- @just_cached = @result.just_cached
|
|
|
|
-
|
|
|
|
@checks = @query ? @query.checks : []
|
|
@checks = @query ? @query.checks : []
|
|
|
|
|
|
@first_row = @rows.first || []
|
|
@first_row = @rows.first || []
|