diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2018-04-04 15:23:49 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 15:23:49 -0400 |
commit | e1203433c09e1f72036cd036c8321e5db665f817 (patch) | |
tree | 35bba99409328e7390705da1bb8da47553bfae75 /activerecord | |
parent | 2d672ea8ed05aa0a435b0a38ce7e292938f8a89b (diff) | |
parent | fb75c891ac7fe7331a9a967a96c674ed35eabdcf (diff) | |
download | rails-e1203433c09e1f72036cd036c8321e5db665f817.tar.gz rails-e1203433c09e1f72036cd036c8321e5db665f817.tar.bz2 rails-e1203433c09e1f72036cd036c8321e5db665f817.zip |
Merge pull request #32414 from bogdan/query-cache-optimization
Optimize the code inside AR::QueryCache middleware
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/query_cache.rb | 15 | ||||
-rw-r--r-- | activerecord/test/cases/query_cache_test.rb | 3 |
2 files changed, 6 insertions, 12 deletions
diff --git a/activerecord/lib/active_record/query_cache.rb b/activerecord/lib/active_record/query_cache.rb index c8e340712d..28194c7c46 100644 --- a/activerecord/lib/active_record/query_cache.rb +++ b/activerecord/lib/active_record/query_cache.rb @@ -26,19 +26,12 @@ module ActiveRecord end def self.run - ActiveRecord::Base.connection_handler.connection_pool_list.map do |pool| - caching_was_enabled = pool.query_cache_enabled - - pool.enable_query_cache! - - [pool, caching_was_enabled] - end + ActiveRecord::Base.connection_handler.connection_pool_list. + reject { |p| p.query_cache_enabled }.each { |p| p.enable_query_cache! } end - def self.complete(caching_pools) - caching_pools.each do |pool, caching_was_enabled| - pool.disable_query_cache! unless caching_was_enabled - end + def self.complete(pools) + pools.each { |pool| pool.disable_query_cache! } ActiveRecord::Base.connection_handler.connection_pool_list.each do |pool| pool.release_connection if pool.active_connection? && !pool.connection.transaction_open? diff --git a/activerecord/test/cases/query_cache_test.rb b/activerecord/test/cases/query_cache_test.rb index d635a47c0e..07be046fb7 100644 --- a/activerecord/test/cases/query_cache_test.rb +++ b/activerecord/test/cases/query_cache_test.rb @@ -441,8 +441,9 @@ class QueryCacheTest < ActiveRecord::TestCase assert_not ActiveRecord::Base.connection_handler.active_connections? # sanity check middleware { - assert ActiveRecord::Base.connection.query_cache_enabled, "QueryCache did not get lazily enabled" + assert_predicate ActiveRecord::Base.connection, :query_cache_enabled }.call({}) + assert_not_predicate ActiveRecord::Base.connection, :query_cache_enabled end end |