Sha256: e8571ea99a180c4985f543f361c50054fcafdfbdacf141cd81eb6ad81a47e63c
Contents?: true
Size: 962 Bytes
Versions: 21
Compression:
Stored size: 962 Bytes
Contents
# frozen_string_literal: true require "active_record/connection_adapters/sqlserver_adapter" module SqlIgnoredCache extend ActiveSupport::Concern IGNORED_SQL = [ /INFORMATION_SCHEMA\.(TABLES|VIEWS|COLUMNS|KEY_COLUMN_USAGE)/im, /sys.columns/i, /SELECT @@version/, /SELECT @@TRANCOUNT/, /(BEGIN|COMMIT|ROLLBACK|SAVE) TRANSACTION/, /SELECT CAST\(.* AS .*\) AS value/, /SELECT DATABASEPROPERTYEX/im ] # We don't want to coerce every ActiveRecord test that relies on `query_cache` # just because we do more queries than the other adapters. # # Removing internal queries from the cache will make AR tests pass without # compromising cache outside tests. def cache_sql(sql, name, binds) result = super @query_cache.delete_if { |k, v| k =~ Regexp.union(IGNORED_SQL) } result end end ActiveSupport.on_load(:active_record) do ActiveRecord::ConnectionAdapters::SQLServerAdapter.prepend(SqlIgnoredCache) end
Version data entries
21 entries across 21 versions & 1 rubygems