From 80d9b724c3f2f49ce99f1c41eddbebe7cf16686d Mon Sep 17 00:00:00 2001
From: Aaron Patterson <aaron.patterson@gmail.com>
Date: Wed, 17 Nov 2010 17:28:40 -0800
Subject: group can be done by left side only

---
 activerecord/lib/active_record/relation/query_methods.rb | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

(limited to 'activerecord')

diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 07ca2e2088..9e7503a60d 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -199,15 +199,12 @@ module ActiveRecord
       equalities = wheres.grep(Arel::Nodes::Equality)
 
       groups = equalities.group_by do |equality|
-        left = equality.left
-        # table,             column
-        [left.relation.name, left.name]
+        equality.left
       end
 
       groups.each do |_, eqls|
-        head = eqls.first
-        test = eqls.inject(head) do |memo, expr|
-          expr == head ? expr : memo.or(expr)
+        test = eqls.inject(eqls.shift) do |memo, expr|
+          memo.or(expr)
         end
         arel = arel.where(test)
       end
-- 
cgit v1.2.3