Sha256: 3b8fd885c9e48fa15c45213174e8c7ebb72dce1af4658392c69fd175844a66f5

Contents?: true

Size: 1.22 KB

Versions: 55

Compression:

Stored size: 1.22 KB

Contents

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

      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=)
        end
        audit.save! if audit.changed?
      end

      if query && !result.timed_out? && !query.variables.any?
        query.checks.each do |check|
          check.update_state(result)
        end
      end

      result
    end
  end
end

Version data entries

55 entries across 55 versions & 3 rubygems

Version Path
sql-jarvis-2.1.10 lib/blazer/run_statement.rb
sql-jarvis-2.1.9 lib/blazer/run_statement.rb
sql-jarvis-2.1.8 lib/blazer/run_statement.rb
sql-jarvis-2.1.7 lib/blazer/run_statement.rb
sql-jarvis-2.1.6 lib/blazer/run_statement.rb
blazer-2.5.0 lib/blazer/run_statement.rb
blazer-2.4.8 lib/blazer/run_statement.rb
blazer-2.4.7 lib/blazer/run_statement.rb
blazer-2.4.6 lib/blazer/run_statement.rb
blazer-2.4.5 lib/blazer/run_statement.rb
blazer-2.4.4 lib/blazer/run_statement.rb
blazer-2.4.3 lib/blazer/run_statement.rb
blazer-2.4.2 lib/blazer/run_statement.rb
blazer-2.4.1 lib/blazer/run_statement.rb
blazer-2.4.0 lib/blazer/run_statement.rb
blazer-2.3.1 lib/blazer/run_statement.rb
blazer-2.3.0 lib/blazer/run_statement.rb
blazer-2.2.8 lib/blazer/run_statement.rb
blazer-2.2.7 lib/blazer/run_statement.rb
blazer-2.2.6 lib/blazer/run_statement.rb