module ActiveRecord::Explain

Private Instance Methods

build_explain_clause(connection, options = []) click to toggle source
# File lib/active_record/explain.rb, line 55
def build_explain_clause(connection, options = [])
  if connection.respond_to?(:build_explain_clause, true)
    connection.build_explain_clause(options)
  else
    "EXPLAIN for:"
  end
end
render_bind(connection, attr) click to toggle source
# File lib/active_record/explain.rb, line 40
def render_bind(connection, attr)
  if ActiveModel::Attribute === attr
    value = if attr.type.binary? && attr.value
      "<#{attr.value_for_database.to_s.bytesize} bytes of binary data>"
    else
      connection.type_cast(attr.value_for_database)
    end
  else
    value = connection.type_cast(attr)
    attr  = nil
  end

  [attr&.name, value]
end