Module: ActiveRecord::ConnectionAdapters::QueryCache::ConnectionPoolConfiguration
- Included in:
- ConnectionPool
- Defined in:
- lib/active_record/connection_adapters/abstract/query_cache.rb
Overview
:nodoc:
Instance Method Summary collapse
- #checkout_and_verify(connection) ⇒ Object
- #clear_query_cache ⇒ Object
- #dirties_query_cache ⇒ Object
-
#disable_query_cache(dirties: true) ⇒ Object
Disable the query cache within the block.
- #disable_query_cache! ⇒ Object
- #enable_query_cache ⇒ Object
- #enable_query_cache! ⇒ Object
- #initialize ⇒ Object
- #query_cache ⇒ Object
- #query_cache_enabled ⇒ Object
Instance Method Details
#checkout_and_verify(connection) ⇒ Object
132 133 134 135 136 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 132 def checkout_and_verify(connection) super connection.query_cache ||= query_cache connection end |
#clear_query_cache ⇒ Object
177 178 179 180 181 182 183 184 185 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 177 def clear_query_cache if @pinned_connection # With transactional fixtures, and especially systems test # another thread may use the same connection, but with a different # query cache. So we must clear them all. @query_cache_version.increment end query_cache.clear end |
#dirties_query_cache ⇒ Object
173 174 175 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 173 def dirties_query_cache query_cache.dirties end |
#disable_query_cache(dirties: true) ⇒ Object
Disable the query cache within the block.
139 140 141 142 143 144 145 146 147 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 139 def disable_query_cache(dirties: true) cache = query_cache old_enabled, cache.enabled, old_dirties, cache.dirties = cache.enabled, false, cache.dirties, dirties begin yield ensure cache.enabled, cache.dirties = old_enabled, old_dirties end end |
#disable_query_cache! ⇒ Object
164 165 166 167 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 164 def disable_query_cache! query_cache.enabled = false query_cache.dirties = true end |
#enable_query_cache ⇒ Object
149 150 151 152 153 154 155 156 157 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 149 def enable_query_cache cache = query_cache old_enabled, cache.enabled, old_dirties, cache.dirties = cache.enabled, true, cache.dirties, true begin yield ensure cache.enabled, cache.dirties = old_enabled, old_dirties end end |
#enable_query_cache! ⇒ Object
159 160 161 162 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 159 def enable_query_cache! query_cache.enabled = true query_cache.dirties = true end |
#initialize ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 117 def initialize(...) super @query_cache_version = Concurrent::AtomicFixnum.new @thread_query_caches = QueryCacheRegistry.new @query_cache_max_size = \ case query_cache = db_config&.query_cache when 0, false nil when Integer query_cache when nil DEFAULT_SIZE end end |
#query_cache ⇒ Object
187 188 189 190 191 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 187 def query_cache @thread_query_caches.compute_if_absent(ActiveSupport::IsolatedExecutionState.context) do Store.new(@query_cache_version, @query_cache_max_size) end end |
#query_cache_enabled ⇒ Object
169 170 171 |
# File 'lib/active_record/connection_adapters/abstract/query_cache.rb', line 169 def query_cache_enabled query_cache.enabled end |