From 7bfc6ea1ef6963eeff39d1cdd4852a822371b528 Mon Sep 17 00:00:00 2001 From: Ryuta Kamizono Date: Tue, 5 May 2015 15:35:42 +0900 Subject: Use `select_rows` instead of `select_one` in `select_value` `select_one` create `ActiveRecord::Result` instance. It is better to use `select_rows` instead of `select_one` for performance. --- .../connection_adapters/abstract/database_statements.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters/abstract') diff --git a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb index 42c794c828..431fe25501 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb @@ -40,8 +40,9 @@ module ActiveRecord # Returns a single value from a record def select_value(arel, name = nil, binds = []) - if result = select_one(arel, name, binds) - result.values.first + arel, binds = binds_from_relation arel, binds + if result = select_rows(to_sql(arel, binds), name, binds).first + result.first end end -- cgit v1.2.3