Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7399

Show
Ignore:
Timestamp:
09/02/07 23:52:58 (2 years ago)
Author:
nzkoz
Message:

Ensure QueryCache doesn't try to dup numeric results (does not affect the major OS database). Closes #7661 [tomafro, nzkoz]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activerecord/lib/active_record/query_cache.rb

    r7239 r7399  
    6060        end 
    6161 
    62         if result 
    63           # perform a deep #dup in case result is an array 
    64           result = result.collect { |row| row.dup } if result.is_a?(Array) 
     62        case result 
     63        when Array 
     64          result.collect { |row| row.dup } 
     65        when Numeric, NilClass, FalseClass 
     66          result 
     67        else 
    6568          result.dup 
    66         else 
    67           nil 
    6869        end 
    6970      end 
  • trunk/activerecord/test/query_cache_test.rb

    r7239 r7399  
    1717    end 
    1818  end 
    19    
     19 
     20  def test_count_queries_with_cache 
     21    Task.cache do 
     22      assert_queries(1) {  Task.count; Task.count } 
     23    end 
     24  end 
     25 
    2026  def test_query_cache_returned 
    2127    assert_not_equal ActiveRecord::QueryCache, Task.connection.class