aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapters/mysql/connection_test.rb
diff options
context:
space:
mode:
authorAaron Stone <aaron@serendipity.cx>2012-11-27 00:57:45 -0800
committerAaron Stone <aaron@serendipity.cx>2012-12-08 10:11:10 -0800
commit97d06e8c4bd44154abda41a3f7e4bc49929a919f (patch)
tree33bad0ef6d7bd8566e0e397d9db7e3d6cfb6a208 /activerecord/test/cases/adapters/mysql/connection_test.rb
parent0a33fcd68bb2c56b8c2eba066f343484a44fa588 (diff)
downloadrails-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/connection_test.rb')
-rw-r--r--activerecord/test/cases/adapters/mysql/connection_test.rb17
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