From cd04a99ba4b5227fb103b6d4e7504c770833e612 Mon Sep 17 00:00:00 2001 From: Ben Woosley Date: Fri, 10 May 2013 11:39:08 +0200 Subject: Move the except(:select) inside the construct_limited_ids_condition method to pair it closely with its motivation. --- activerecord/lib/active_record/relation/finder_methods.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index a51db614cd..531343782e 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -234,7 +234,7 @@ module ActiveRecord limitable_reflections = using_limitable_reflections?(join_dependency.reflections) if !limitable_reflections && relation.limit_value - limited_id_condition = construct_limited_ids_condition(relation.except(:select)) + limited_id_condition = construct_limited_ids_condition(relation) relation = relation.where(limited_id_condition) end @@ -247,7 +247,7 @@ module ActiveRecord values = @klass.connection.columns_for_distinct( "#{quoted_table_name}.#{quoted_primary_key}", relation.order_values) - relation = relation.dup.select(values).distinct! + relation = relation.except(:select).select(values).distinct! id_rows = @klass.connection.select_all(relation.arel, 'SQL', relation.bind_values) ids_array = id_rows.map {|row| row[primary_key]} -- cgit v1.2.3