aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2017-08-14 18:31:42 -0400
committerRafael Mendonça França <rafaelmfranca@gmail.com>2017-08-14 18:31:42 -0400
commit3fc47f4d82175c3f32dab6177685ae24f485c7b1 (patch)
treecb37ddb9973dc3a58720f6b3bc87e10bc1ccc02d /activerecord/lib
parent6b632336c172ea397bb1386ff44c2e8320672cb4 (diff)
parent566f1fd068711dfe557bef63406f8dd6d41d473d (diff)
downloadrails-3fc47f4d82175c3f32dab6177685ae24f485c7b1.tar.gz
rails-3fc47f4d82175c3f32dab6177685ae24f485c7b1.tar.bz2
rails-3fc47f4d82175c3f32dab6177685ae24f485c7b1.zip
Merge pull request #30169 from awortham/awortham/awortham/fix-sql-distinct-bug
Ensure sum honors distinct on has_many through
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/relation/calculations.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index d3b5be6bce..42d43224fa 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -259,6 +259,9 @@ module ActiveRecord
column = aggregate_column(column_name)
select_value = operation_over_aggregate_column(column, operation, distinct)
+ if operation == "sum" && distinct
+ select_value.distinct = true
+ end
column_alias = select_value.alias
column_alias ||= @klass.connection.column_name_for_operation(operation, select_value)