Module: ActiveRecord::Explain

Defined in:
lib/activerecord-analyze/main.rb

Instance Method Summary collapse

Instance Method Details

#exec_analyze(queries, opts = {}) ⇒ Object

:nodoc:



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/activerecord-analyze/main.rb', line 41

def exec_analyze(queries, opts = {}) # :nodoc:
  str = queries.map do |sql, binds|
    analyze_msg = if opts[:analyze] == false
      ""
    else
      " ANALYZE"
    end

    msg = "EXPLAIN#{analyze_msg} for: #{sql}".dup
    unless binds.empty?
      msg << " "
      msg << binds.map { |attr| render_bind(attr) }.inspect
    end
    msg << "\n"
    msg << connection.analyze(sql, binds, opts)
  end.join("\n")

  # Overriding inspect to be more human readable, especially in the console.
  def str.inspect
    self
  end

  str
end