diff options
author | Matthew Draper <matthew@trebex.net> | 2015-12-23 03:34:22 +1030 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2015-12-23 03:34:22 +1030 |
commit | 47fd7c95555cb1c6e05768cd1b9ee38ad5cf9d1f (patch) | |
tree | 7bf09a35794f5286bfddf64891f6fb03dc2ab92e | |
parent | 30e1101f9b8140a34a70c8b86a0220463e6838d4 (diff) | |
parent | fdb0234434ae37885bf03b76319e8bee01b55071 (diff) | |
download | rails-47fd7c95555cb1c6e05768cd1b9ee38ad5cf9d1f.tar.gz rails-47fd7c95555cb1c6e05768cd1b9ee38ad5cf9d1f.tar.bz2 rails-47fd7c95555cb1c6e05768cd1b9ee38ad5cf9d1f.zip |
Merge pull request #22749 from sblackstone/mysql2flags
Add support for passing flags to MySQL2 adapter by array
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb | 7 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/mysql2/connection_test.rb | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb index 6590e0140d..f4686b680c 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb @@ -11,8 +11,13 @@ module ActiveRecord config[:username] = 'root' if config[:username].nil? config[:flags] ||= 0 + if Mysql2::Client.const_defined? :FOUND_ROWS - config[:flags] |= Mysql2::Client::FOUND_ROWS + if config[:flags].kind_of? Array + config[:flags].push "FOUND_ROWS".freeze + else + config[:flags] |= Mysql2::Client::FOUND_ROWS + end end client = Mysql2::Client.new(config) diff --git a/activerecord/test/cases/adapters/mysql2/connection_test.rb b/activerecord/test/cases/adapters/mysql2/connection_test.rb index f344f99e85..575138eb2a 100644 --- a/activerecord/test/cases/adapters/mysql2/connection_test.rb +++ b/activerecord/test/cases/adapters/mysql2/connection_test.rb @@ -87,7 +87,14 @@ class Mysql2ConnectionTest < ActiveRecord::Mysql2TestCase assert_equal (Mysql2::Client::COMPRESS | Mysql2::Client::FOUND_ROWS), ActiveRecord::Base.connection.raw_connection.query_options[:flags] end end - + + def test_passing_flags_by_array_to_adapter + run_without_connection do |orig_connection| + ActiveRecord::Base.establish_connection(orig_connection.merge({flags: ['COMPRESS'] })) + assert_equal ["COMPRESS", "FOUND_ROWS"], ActiveRecord::Base.connection.raw_connection.query_options[:flags] + end + end + def test_mysql_strict_mode_specified_default run_without_connection do |orig_connection| ActiveRecord::Base.establish_connection(orig_connection.merge({strict: :default})) |