aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-12-08 05:07:45 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-12-08 05:07:45 +0000
commitcf54a7135298d1a3ead55ca98097f573ad6e7939 (patch)
treefdc33c6a23f456e5a11ca81925ed900ea32f4c03
parentdf901ce3455159f2a01d443239f33b50b5dacf4e (diff)
downloadrails-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/CHANGELOG2
-rwxr-xr-xactiverecord/lib/active_record/connection_adapters/mysql_adapter.rb10
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 }