From 744e63513011919a75998f531913211aced21604 Mon Sep 17 00:00:00 2001 From: Igor Alexandrov Date: Fri, 11 Feb 2011 12:09:41 +0300 Subject: [PATCH] Optimized construct_finder_sql_with_included_associations method --- activerecord/lib/active_record/associations.rb | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 3a32581..4b1c436 100755 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -1631,8 +1631,11 @@ module ActiveRecord sql << join_dependency.join_associations.collect{|join| join.association_join }.join add_joins!(sql, options[:joins], scope) - add_conditions!(sql, options[:conditions], scope) - add_limited_ids_condition!(sql, options, join_dependency) if !using_limitable_reflections?(join_dependency.reflections) && ((scope && scope[:limit]) || options[:limit]) + if !using_limitable_reflections?(join_dependency.reflections) && ((scope && scope[:limit]) || options[:limit]) + add_limited_ids_condition!(sql, options, join_dependency) + else + add_conditions!(sql, options[:conditions], scope) + end add_group!(sql, options[:group], options[:having], scope) add_order!(sql, options[:order], scope) @@ -1644,7 +1647,7 @@ module ActiveRecord def add_limited_ids_condition!(sql, options, join_dependency) unless (id_list = select_limited_ids_list(options, join_dependency)).empty? - sql << "#{condition_word(sql)} #{connection.quote_table_name table_name}.#{primary_key} IN (#{id_list}) " + sql << " #{condition_word(sql)} #{connection.quote_table_name table_name}.#{primary_key} IN (#{id_list}) " else throw :invalid_query end -- 1.7.3.2