diff options
author | Matthew Draper <matthew@trebex.net> | 2018-08-23 01:04:14 +0930 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-23 01:04:14 +0930 |
commit | 24f6bf0d96b58f2b2ef6a886c93d35cf8ce4f293 (patch) | |
tree | 6bbe27eb6d6e12ec25c2574cfd13b8397bafb638 /activerecord/lib | |
parent | 047a893da7a43b8e115b854c73735b9e6475838e (diff) | |
parent | 20bb397e00dad9dfdb38d0c8dd73062b448c31e3 (diff) | |
download | rails-24f6bf0d96b58f2b2ef6a886c93d35cf8ce4f293.tar.gz rails-24f6bf0d96b58f2b2ef6a886c93d35cf8ce4f293.tar.bz2 rails-24f6bf0d96b58f2b2ef6a886c93d35cf8ce4f293.zip |
Merge pull request #33691 from tgxworld/add_config_to_disable_advisory_locks
Add database configuration to disable advisory locks.
Diffstat (limited to 'activerecord/lib')
3 files changed, 14 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb index a4748dbeda..529d099e16 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -77,7 +77,14 @@ module ActiveRecord SIMPLE_INT = /\A\d+\z/ attr_accessor :visitor, :pool - attr_reader :schema_cache, :owner, :logger, :prepared_statements, :lock + + attr_reader :schema_cache, + :owner, + :logger, + :prepared_statements, + :lock, + :advisory_locks + alias :in_use? :owner def self.type_cast_config_to_integer(config) @@ -119,6 +126,10 @@ module ActiveRecord else @prepared_statements = false end + + @advisory_locks_enabled = self.class.type_cast_config_to_boolean( + config.fetch(:advisory_locks, true) + ) end def migrations_paths # :nodoc: diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 9de8242a58..9ff76435a1 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -111,7 +111,7 @@ module ActiveRecord end def supports_advisory_locks? - true + @advisory_locks_enabled end def get_advisory_lock(lock_name, timeout = 0) # :nodoc: diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index fdf6f75108..4802a87c6a 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -298,7 +298,7 @@ module ActiveRecord end def supports_advisory_locks? - true + @advisory_locks_enabled end def supports_explain? |