From e56567c0b22f9455098e4dd444f44480ae16e329 Mon Sep 17 00:00:00 2001 From: Brian Lopez Date: Tue, 14 Jun 2011 15:17:01 -0700 Subject: [PATCH 1/2] Turn off eager casting for mysql2, so ActiveRecord can lazily cast values later. This should help performance for tables with complex types like DATETIME, TIMESTAMP --- .../lib/active_record/connection_adapters/mysql2_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb index ac2da73a84..4d314f1ebd 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb @@ -629,7 +629,7 @@ module ActiveRecord end def configure_connection - @connection.query_options.merge!(:as => :array) + @connection.query_options.merge!(:as => :array, :cast => false) # By default, MySQL 'where id is null' selects the last inserted id. # Turn this off. http://dev.rubyonrails.org/ticket/6778 From aeb7beb3c67ebfd0f8575525277bcf8ee154f76a Mon Sep 17 00:00:00 2001 From: Brian Lopez Date: Tue, 14 Jun 2011 15:42:08 -0700 Subject: [PATCH 2/2] mysql2 casting changes require mysql2 >= 0.3.3 --- Gemfile | 2 +- .../lib/active_record/connection_adapters/mysql2_adapter.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 03c748e3af..08482084ea 100644 --- a/Gemfile +++ b/Gemfile @@ -55,7 +55,7 @@ platforms :ruby do group :db do gem "pg", ">= 0.11.0" gem "mysql", ">= 2.8.1" - gem "mysql2", ">= 0.3.0" + gem "mysql2", ">= 0.3.3" end end diff --git a/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb index 4d314f1ebd..5c45f233f9 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb @@ -1,6 +1,6 @@ # encoding: utf-8 -gem 'mysql2', '~> 0.3.0' +gem 'mysql2', '~> 0.3.3' require 'mysql2' module ActiveRecord