module ActiveRecord::Explain
def exec_explain(queries, options = []) # :nodoc:
Returns a formatted string ready to be logged.
Makes the adapter execute EXPLAIN for the tuples of queries and bindings.
def exec_explain(queries, options = []) # :nodoc: str = with_connection do |c| queries.map do |sql, binds| msg = +"#{build_explain_clause(c, options)} #{sql}" unless binds.empty? msg << " " msg << binds.map { |attr| render_bind(c, attr) }.inspect end msg << "\n" msg << c.explain(sql, binds, options) end.join("\n") end # Overriding inspect to be more human readable, especially in the console. def str.inspect self end str end