diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-05-27 23:35:05 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-05-27 23:35:05 -0300 |
commit | c68e45dd3bb859da76558c197e70d5c4882d85ee (patch) | |
tree | c1601368902b40b0a6ed549ce256c04b8b28b1b8 /activerecord/lib | |
parent | 27fdf4591d06d11728649714bdaf0a006908861b (diff) | |
parent | 7961f4f7764a902a1f454eb324d8122037e28702 (diff) | |
download | rails-c68e45dd3bb859da76558c197e70d5c4882d85ee.tar.gz rails-c68e45dd3bb859da76558c197e70d5c4882d85ee.tar.bz2 rails-c68e45dd3bb859da76558c197e70d5c4882d85ee.zip |
Merge pull request #17654 from kamipo/strict_mode_explicitly
If specify `strict: :default` explicitly, do not set sql_mode.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 6 |
1 files changed, 4 insertions, 2 deletions
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 c3206c6045..00e3d2965b 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -959,10 +959,12 @@ module ActiveRecord wait_timeout = 2147483 unless wait_timeout.is_a?(Fixnum) variables['wait_timeout'] = self.class.type_cast_config_to_integer(wait_timeout) + defaults = [':default', :default].to_set + # Make MySQL reject illegal values rather than truncating or blanking them, see # http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sqlmode_strict_all_tables # If the user has provided another value for sql_mode, don't replace it. - unless variables.has_key?('sql_mode') + unless variables.has_key?('sql_mode') || defaults.include?(@config[:strict]) variables['sql_mode'] = strict_mode? ? 'STRICT_ALL_TABLES' : '' end @@ -977,7 +979,7 @@ module ActiveRecord # Gather up all of the SET variables... variable_assignments = variables.map do |k, v| - if v == ':default' || v == :default + if defaults.include?(v) "@@SESSION.#{k} = DEFAULT" # Sets the value to the global or compile default elsif !v.nil? "@@SESSION.#{k} = #{quote(v)}" |