Merge pull request #6985 from sidonath/disable-query-cache-for-locks

Disable query cache for lock queries
Conflicts:
	activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
This commit is contained in:
Rafael Mendonça França
2012-07-06 07:07:46 -07:00
parent 03dcdc317d
commit 7adc4f20cc
2 changed files with 17 additions and 1 deletions

View File

@@ -56,7 +56,7 @@ module ActiveRecord
end
def select_all(arel, name = nil, binds = [])
if @query_cache_enabled
if @query_cache_enabled && !locked?(arel)
sql = to_sql(arel, binds)
cache_sql(sql, binds) { super(sql, name, binds) }
else
@@ -77,6 +77,14 @@ module ActiveRecord
result.collect { |row| row.dup }
end
def locked?(arel)
if arel.respond_to?(:locked)
arel.locked
else
false
end
end
end
end
end

View File

@@ -165,6 +165,14 @@ class QueryCacheTest < ActiveRecord::TestCase
end
end
end
def test_cache_is_ignored_for_locked_relations
task = Task.find 1
Task.cache do
assert_queries(2) { task.lock!; task.lock! }
end
end
end
class QueryCacheExpiryTest < ActiveRecord::TestCase