| Module | ActiveRecord::ConnectionAdapters::QueryCache |
| In: |
vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb
|
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 15
15: def dirties_query_cache(base, *method_names)
16: method_names.each do |method_name|
17: base.class_eval "def \#{method_name}_with_query_dirty(*args)\nclear_query_cache if @query_cache_enabled\n\#{method_name}_without_query_dirty(*args)\nend\n\nalias_method_chain :\#{method_name}, :query_dirty\n", __FILE__, __LINE__
18: end
19: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 5
5: def included(base)
6: base.class_eval do
7: attr_accessor :query_cache_enabled
8: alias_method_chain :columns, :query_cache
9: alias_method_chain :select_all, :query_cache
10: end
11:
12: dirties_query_cache base, :insert, :update, :delete
13: end
Enable the query cache within the block.
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 31
31: def cache
32: old, @query_cache_enabled = @query_cache_enabled, true
33: @query_cache ||= {}
34: yield
35: ensure
36: clear_query_cache
37: @query_cache_enabled = old
38: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 48
48: def clear_query_cache
49: @query_cache.clear if @query_cache
50: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 60
60: def columns_with_query_cache(*args)
61: if @query_cache_enabled
62: @query_cache["SHOW FIELDS FROM #{args.first}"] ||= columns_without_query_cache(*args)
63: else
64: columns_without_query_cache(*args)
65: end
66: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb, line 52
52: def select_all_with_query_cache(*args)
53: if @query_cache_enabled
54: cache_sql(args.first) { select_all_without_query_cache(*args) }
55: else
56: select_all_without_query_cache(*args)
57: end
58: end