From aeb917d475dfccb8b5f3b5a57f62df5358ad3ef0 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 13 Nov 2014 15:31:54 -0800 Subject: [PATCH] exec_prepared is GVL friendly, so lets use it. also increase the version of pg required so that people will get the GVL friendly version --- Gemfile | 2 +- .../active_record/connection_adapters/postgresql_adapter.rb | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 931c8e85bc..fa17d217c9 100644 --- a/Gemfile +++ b/Gemfile @@ -81,7 +81,7 @@ platforms :ruby do gem 'sqlite3', '~> 1.3.6' group :db do - gem 'pg', '>= 0.11.0' + gem 'pg', '>= 0.15.0' gem 'mysql', '>= 2.9.0' gem 'mysql2', '>= 0.3.13' end diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 9941f74766..6310d70192 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -13,7 +13,7 @@ require 'active_record/connection_adapters/postgresql/database_statements' require 'arel/visitors/bind_visitor' # Make sure we're using pg high enough for PGResult#values -gem 'pg', '~> 0.11' +gem 'pg', '~> 0.15' require 'pg' require 'ipaddr' @@ -596,9 +596,7 @@ module ActiveRecord } log(sql, name, type_casted_binds, stmt_key) do - @connection.send_query_prepared(stmt_key, type_casted_binds.map { |_, val| val }) - @connection.block - @connection.get_last_result + @connection.exec_prepared(stmt_key, type_casted_binds.map { |_, val| val }) end rescue ActiveRecord::StatementInvalid => e pgerror = e.original_exception