Module: ActiveRecord::Explain

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

Instance Method Summary collapse

Instance Method Details

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

:nodoc:



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/activerecord-analyze/main.rb', line 95

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