From 7d5762d2c2147f8240614997682e5e535a3e4f33 Mon Sep 17 00:00:00 2001
From: Aaron Patterson <aaron.patterson@gmail.com>
Date: Sat, 30 Oct 2010 12:28:49 -0700
Subject: no need to merge where values if no new where values have been added

---
 .../lib/active_record/relation/spawn_methods.rb    | 24 ++++++++++++----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/activerecord/lib/active_record/relation/spawn_methods.rb b/activerecord/lib/active_record/relation/spawn_methods.rb
index 648a02f1cc..d761bd3ea6 100644
--- a/activerecord/lib/active_record/relation/spawn_methods.rb
+++ b/activerecord/lib/active_record/relation/spawn_methods.rb
@@ -28,17 +28,19 @@ module ActiveRecord
 
       merged_wheres = @where_values + r.where_values
 
-      # Remove duplicates, last one wins.
-      seen = {}
-      merged_wheres = merged_wheres.reverse.reject { |w|
-        nuke = false
-        if w.respond_to?(:operator) && w.operator == :==
-          name       = w.left.name
-          nuke       = seen[name]
-          seen[name] = true
-        end
-        nuke
-      }.reverse
+      unless @where_values.empty?
+        # Remove duplicates, last one wins.
+        seen = {}
+        merged_wheres = merged_wheres.reverse.reject { |w|
+          nuke = false
+          if w.respond_to?(:operator) && w.operator == :==
+            name       = w.left.name
+            nuke       = seen[name]
+            seen[name] = true
+          end
+          nuke
+        }.reverse
+      end
 
       merged_relation.where_values = merged_wheres
 
-- 
cgit v1.2.3