diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2005-12-08 05:07:45 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2005-12-08 05:07:45 +0000 |
commit | cf54a7135298d1a3ead55ca98097f573ad6e7939 (patch) | |
tree | fdc33c6a23f456e5a11ca81925ed900ea32f4c03 | |
parent | df901ce3455159f2a01d443239f33b50b5dacf4e (diff) | |
download | rails-cf54a7135298d1a3ead55ca98097f573ad6e7939.tar.gz rails-cf54a7135298d1a3ead55ca98097f573ad6e7939.tar.bz2 rails-cf54a7135298d1a3ead55ca98097f573ad6e7939.zip |
MySQL: more robust test for nullified result hashes. References #3124.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3246 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | activerecord/CHANGELOG | 2 | ||||
-rwxr-xr-x | activerecord/lib/active_record/connection_adapters/mysql_adapter.rb | 10 |
2 files changed, 4 insertions, 8 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index d5fe3745b5..53f0878406 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* MySQL: more robust test for nullified result hashes. #3124 [Stefan Kaes] + * SQLite: find database file when RAILS_ROOT is a symlink. #3116 [anna@wota.jp] * Reloading an instance refreshes its aggregations as well as its associations. #3024 [François Beausolei] diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb index 6327840752..0a51559fed 100755 --- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb @@ -8,14 +8,10 @@ module ActiveRecord unless defined? Mysql begin require_library_or_gem 'mysql' - # The C version of mysql returns null fields in each_hash if Mysql::VERSION is defined - ConnectionAdapters::MysqlAdapter.null_values_in_each_hash = Mysql.const_defined?(:VERSION) rescue LoadError => cannot_require_mysql # Only use the supplied backup Ruby/MySQL driver if no driver is already in place begin require 'active_record/vendor/mysql' - # The ruby version of mysql returns null fields in each_hash - ConnectionAdapters::MysqlAdapter.null_values_in_each_hash = true rescue LoadError raise cannot_require_mysql end @@ -77,9 +73,6 @@ module ActiveRecord @@emulate_booleans = true cattr_accessor :emulate_booleans - cattr_accessor :null_values_in_each_hash - @@null_values_in_each_hash = false - LOST_CONNECTION_ERROR_MESSAGES = [ "Server shutdown in progress", "Broken pipe", @@ -90,6 +83,7 @@ module ActiveRecord def initialize(connection, logger, connection_options=nil, config={}) super(connection, logger) @connection_options = connection_options + @null_values_in_each_hash = Mysql.const_defined?(:VERSION) @config = config connect end @@ -332,7 +326,7 @@ module ActiveRecord @connection.query_with_result = true result = execute(sql, name) rows = [] - if @@null_values_in_each_hash + if @null_values_in_each_hash result.each_hash { |row| rows << row } else all_fields = result.fetch_fields.inject({}) { |fields, f| fields[f.name] = nil; fields } |