Browse files

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
  • Loading branch information...
1 parent df901ce commit cf54a7135298d1a3ead55ca98097f573ad6e7939 @jeremy jeremy committed Dec 8, 2005
Showing with 4 additions and 8 deletions.
  1. +2 −0 activerecord/CHANGELOG
  2. +2 −8 activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
View
2 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]
View
10 activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -8,14 +8,10 @@ def self.mysql_connection(config) # :nodoc:
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 @@ class MysqlAdapter < AbstractAdapter
@@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 @@ class MysqlAdapter < AbstractAdapter
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 @@ def select(sql, name = nil)
@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 }

0 comments on commit cf54a71

Please sign in to comment.