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

Version Path
activerecord-sqlserver-adapter-7.0.7 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.6 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.5.1 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.5.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.4.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.3.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.0.3 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.2.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.1.3.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.1.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.0.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-7.0.0.0.rc1 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.1.2.1 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.1.2.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.1.1.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.1.0.0 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.1.0.0.rc1 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.0.2 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.0.1 test/support/core_ext/query_cache.rb
activerecord-sqlserver-adapter-6.0.0 test/support/core_ext/query_cache.rb