module ActiveRecord::ConnectionAdapters::QueryCache

def cache_sql(sql, name, binds)

def cache_sql(sql, name, binds)
  key = binds.empty? ? sql : [sql, binds]
  result = nil
  hit = true
  @lock.synchronize do
    result = @query_cache.compute_if_absent(key) do
      hit = false
      yield
    end
  end
  if hit
    ActiveSupport::Notifications.instrument(
      "sql.active_record",
      cache_notification_info_result(sql, name, binds, result)
    )
  end
  result.dup
end