|
@@ -1,38 +1,40 @@
|
|
|
-class RunStatement
|
|
|
- def perform(data_source, statement, options = {})
|
|
|
- query = options[:query]
|
|
|
- Blazer.transform_statement.call(data_source, statement) if Blazer.transform_statement
|
|
|
+module Blazer
|
|
|
+ class RunStatement
|
|
|
+ def perform(data_source, statement, options = {})
|
|
|
+ query = options[:query]
|
|
|
+ Blazer.transform_statement.call(data_source, statement) if Blazer.transform_statement
|
|
|
|
|
|
- # audit
|
|
|
- if Blazer.audit
|
|
|
- audit = Blazer::Audit.new(statement: statement)
|
|
|
- audit.query = query
|
|
|
- audit.data_source = data_source.id
|
|
|
- audit.user = options[:user]
|
|
|
- audit.save!
|
|
|
- end
|
|
|
+ # audit
|
|
|
+ if Blazer.audit
|
|
|
+ audit = Blazer::Audit.new(statement: statement)
|
|
|
+ audit.query = query
|
|
|
+ audit.data_source = data_source.id
|
|
|
+ audit.user = options[:user]
|
|
|
+ audit.save!
|
|
|
+ end
|
|
|
|
|
|
- start_time = Time.now
|
|
|
- result = data_source.run_statement(statement, options)
|
|
|
- duration = Time.now - start_time
|
|
|
+ start_time = Time.now
|
|
|
+ result = data_source.run_statement(statement, options)
|
|
|
+ duration = Time.now - start_time
|
|
|
|
|
|
- if Blazer.audit
|
|
|
- audit.duration = duration if audit.respond_to?(:duration=)
|
|
|
- audit.error = result.error if audit.respond_to?(:error=)
|
|
|
- audit.timed_out = result.timed_out? if audit.respond_to?(:timed_out=)
|
|
|
- audit.cached = result.cached? if audit.respond_to?(:cached=)
|
|
|
- if !result.cached? && duration >= 10
|
|
|
- audit.cost = data_source.cost(statement) if audit.respond_to?(:cost=)
|
|
|
+ if Blazer.audit
|
|
|
+ audit.duration = duration if audit.respond_to?(:duration=)
|
|
|
+ audit.error = result.error if audit.respond_to?(:error=)
|
|
|
+ audit.timed_out = result.timed_out? if audit.respond_to?(:timed_out=)
|
|
|
+ audit.cached = result.cached? if audit.respond_to?(:cached=)
|
|
|
+ if !result.cached? && duration >= 10
|
|
|
+ audit.cost = data_source.cost(statement) if audit.respond_to?(:cost=)
|
|
|
+ end
|
|
|
+ audit.save! if audit.changed?
|
|
|
end
|
|
|
- audit.save! if audit.changed?
|
|
|
- end
|
|
|
|
|
|
- if query && !result.timed_out?
|
|
|
- query.checks.each do |check|
|
|
|
- check.update_state(result)
|
|
|
+ if query && !result.timed_out?
|
|
|
+ query.checks.each do |check|
|
|
|
+ check.update_state(result)
|
|
|
+ end
|
|
|
end
|
|
|
- end
|
|
|
|
|
|
- result
|
|
|
+ result
|
|
|
+ end
|
|
|
end
|
|
|
end
|