diff options
author | Aaron Stone <aaron@serendipity.cx> | 2012-11-27 00:57:45 -0800 |
---|---|---|
committer | Aaron Stone <aaron@serendipity.cx> | 2012-12-08 10:11:10 -0800 |
commit | 97d06e8c4bd44154abda41a3f7e4bc49929a919f (patch) | |
tree | 33bad0ef6d7bd8566e0e397d9db7e3d6cfb6a208 /activerecord/test/cases/adapters/mysql | |
parent | 0a33fcd68bb2c56b8c2eba066f343484a44fa588 (diff) | |
download | rails-97d06e8c4bd44154abda41a3f7e4bc49929a919f.tar.gz rails-97d06e8c4bd44154abda41a3f7e4bc49929a919f.tar.bz2 rails-97d06e8c4bd44154abda41a3f7e4bc49929a919f.zip |
Session variables for mysql, mysql2, and postgresql adapters can be set
in the new 'variables:' hash in each database config section in database.yml.
The key-value pairs of this hash will be sent in a 'SET key = value, ...'
query on new database connections.
The configure_connection methods from mysql and mysql2 into are
consolidated into the abstract_mysql base class.
Diffstat (limited to 'activerecord/test/cases/adapters/mysql')
-rw-r--r-- | activerecord/test/cases/adapters/mysql/connection_test.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/mysql/connection_test.rb b/activerecord/test/cases/adapters/mysql/connection_test.rb index 534dc2c2df..ffd6904aec 100644 --- a/activerecord/test/cases/adapters/mysql/connection_test.rb +++ b/activerecord/test/cases/adapters/mysql/connection_test.rb @@ -137,6 +137,23 @@ class MysqlConnectionTest < ActiveRecord::TestCase end end + def test_mysql_set_session_variable + run_without_connection do |orig_connection| + ActiveRecord::Base.establish_connection(orig_connection.deep_merge({:variables => {:default_week_format => 3}})) + session_mode = ActiveRecord::Base.connection.exec_query "SELECT @@SESSION.DEFAULT_WEEK_FORMAT" + assert_equal 3, session_mode.rows.first.first.to_i + end + end + + def test_mysql_set_session_variable_to_default + run_without_connection do |orig_connection| + ActiveRecord::Base.establish_connection(orig_connection.deep_merge({:variables => {:default_week_format => :default}})) + global_mode = ActiveRecord::Base.connection.exec_query "SELECT @@GLOBAL.DEFAULT_WEEK_FORMAT" + session_mode = ActiveRecord::Base.connection.exec_query "SELECT @@SESSION.DEFAULT_WEEK_FORMAT" + assert_equal global_mode.rows, session_mode.rows + end + end + private def run_without_connection |