aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/merger.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/relation/merger.rb')
-rw-r--r--activerecord/lib/active_record/relation/merger.rb8
1 files changed, 3 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/relation/merger.rb b/activerecord/lib/active_record/relation/merger.rb
index eb72d551da..38f49912d1 100644
--- a/activerecord/lib/active_record/relation/merger.rb
+++ b/activerecord/lib/active_record/relation/merger.rb
@@ -102,7 +102,9 @@ module ActiveRecord
rhs_wheres = values[:where] || []
lhs_wheres = relation.where_values
- relation.where_values = merged_wheres(lhs_wheres, rhs_wheres)
+ _, kept = partition_overwrites(lhs_wheres, rhs_wheres)
+
+ relation.where_values = kept + rhs_wheres
relation.bind_values = merged_binds
if values[:reordering]
@@ -134,10 +136,6 @@ module ActiveRecord
end
end
- def merged_wheres(lhs_wheres, rhs_wheres)
- partition_overwrites(lhs_wheres, rhs_wheres).last + rhs_wheres
- end
-
# Remove equalities from the existing relation with a LHS which is
# present in the relation being merged in.
# returns [things_to_remove, things_to_keep]