diff --git a/activerecord/lib/active_record/query_cache.rb b/activerecord/lib/active_record/query_cache.rb index 1b15f922842c4795661fb56759befac3213315c2..2cb9b97f8fafe6ecddd6372f2c2743fb8b8f1187 100644 --- a/activerecord/lib/active_record/query_cache.rb +++ b/activerecord/lib/active_record/query_cache.rb @@ -48,9 +48,8 @@ def delete(sql, name = nil) clear_query_cache @connection.delete(sql, name) end - + private - def cache(sql) result = if @query_cache.has_key?(sql) log_info(sql, "CACHE", 0.0) @@ -62,13 +61,15 @@ def cache(sql) case result when Array result.collect { |row| row.dup } - when Fixnum, NilClass, FalseClass + when nil, Fixnum, Float, true, false result else result.dup end + rescue TypeError + result end - + def method_missing(method, *arguments, &proc) @connection.send(method, *arguments, &proc) end