aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorPaul Nikitochkin <paul.nikitochkin@gmail.com>2013-12-09 01:23:38 +0200
committerPaul Nikitochkin <paul.nikitochkin@gmail.com>2013-12-10 14:30:12 +0200
commit2a7fe7ae9b09024acea3c5d525c89b91bdb264a1 (patch)
tree0749e9445cb7c0a9417c1a6dfff8b159f70e4c51 /activerecord/lib
parent4aae538d9ffff3a00a81f3da52fa70f7fd79ac74 (diff)
downloadrails-2a7fe7ae9b09024acea3c5d525c89b91bdb264a1.tar.gz
rails-2a7fe7ae9b09024acea3c5d525c89b91bdb264a1.tar.bz2
rails-2a7fe7ae9b09024acea3c5d525c89b91bdb264a1.zip
Fix type cast on group sum with custom expression
For PG adapters with custom expression and grouped result of aggregate functions have not found correct column type for it. Extract column type from query result. Closes: #13230
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/relation/calculations.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index 2d267183ce..cf24d10a8d 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -311,7 +311,9 @@ module ActiveRecord
}
key = key.first if key.size == 1
key = key_records[key] if associated
- [key, type_cast_calculated_value(row[aggregate_alias], column_for(column_name), operation)]
+
+ column_type = calculated_data.column_types.fetch(aggregate_alias) { column_for(column_name) }
+ [key, type_cast_calculated_value(row[aggregate_alias], column_type, operation)]
end]
end