Ticket #3124: more_robust_null_values_in_each_hash_initialization.patch
| File more_robust_null_values_in_each_hash_initialization.patch, 2.0 kB (added by skaes, 3 years ago) |
|---|
-
activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
old new 8 8 unless defined? Mysql 9 9 begin 10 10 require_library_or_gem 'mysql' 11 # The C version of mysql returns null fields in each_hash if Mysql::VERSION is defined12 ConnectionAdapters::MysqlAdapter.null_values_in_each_hash = Mysql.const_defined?(:VERSION)13 11 rescue LoadError => cannot_require_mysql 14 12 # Only use the supplied backup Ruby/MySQL driver if no driver is already in place 15 13 begin 16 14 require 'active_record/vendor/mysql' 17 # The ruby version of mysql returns null fields in each_hash18 ConnectionAdapters::MysqlAdapter.null_values_in_each_hash = true19 15 rescue LoadError 20 16 raise cannot_require_mysql 21 17 end … … 87 83 @@emulate_booleans = true 88 84 cattr_accessor :emulate_booleans 89 85 90 cattr_accessor :null_values_in_each_hash91 @@null_values_in_each_hash = false92 93 86 LOST_CONNECTION_ERROR_MESSAGES = [ 94 87 "Server shutdown in progress", 95 88 "Broken pipe", … … 100 93 def initialize(connection, logger, connection_options=nil, mysql=Mysql) 101 94 super(connection, logger) 102 95 @connection_options = connection_options 96 @null_values_in_each_hash = Mysql.const_defined?(:VERSION) 103 97 @mysql = mysql 104 98 end 105 99 … … 341 335 @connection.query_with_result = true 342 336 result = execute(sql, name) 343 337 rows = [] 344 if @ @null_values_in_each_hash338 if @null_values_in_each_hash 345 339 result.each_hash { |row| rows << row } 346 340 else 347 341 all_fields = result.fetch_fields.inject({}) { |fields, f| fields[f.name] = nil; fields }