aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-02-07 16:07:07 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-02-07 16:08:13 +0900
commit401354b298953a7d83eaef8ab703476991c3e9d4 (patch)
tree157e39917bb261efdffd83fcec8b26ab038f4931
parent383c4de2df17cd4168274c96e379292262f29189 (diff)
downloadrails-401354b298953a7d83eaef8ab703476991c3e9d4.tar.gz
rails-401354b298953a7d83eaef8ab703476991c3e9d4.tar.bz2
rails-401354b298953a7d83eaef8ab703476991c3e9d4.zip
Revert "Remove useless `column_alias` in `subquery_for_count`"
This reverts commit 28977f1fa3d7b15c1608174a165e60b71ddf3995.
-rw-r--r--activerecord/lib/active_record/relation/calculations.rb5
-rw-r--r--activerecord/test/cases/calculations_test.rb1
2 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index e8aba02611..35c670f1a1 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -364,14 +364,15 @@ module ActiveRecord
end
def build_count_subquery(relation, column_name, distinct)
+ column_alias = Arel.sql("count_column")
subquery_alias = Arel.sql("subquery_for_count")
- aliased_column = aggregate_column(column_name == :all ? "1" : column_name)
+ aliased_column = aggregate_column(column_name == :all ? 1 : column_name).as(column_alias)
relation.select_values = [aliased_column]
subquery = relation.arel.as(subquery_alias)
sm = Arel::SelectManager.new relation.engine
- select_value = operation_over_aggregate_column(Arel.star, "count", distinct)
+ select_value = operation_over_aggregate_column(column_alias, "count", distinct)
sm.project(select_value).from(subquery)
end
end
diff --git a/activerecord/test/cases/calculations_test.rb b/activerecord/test/cases/calculations_test.rb
index 0de2fea4c2..1813534b62 100644
--- a/activerecord/test/cases/calculations_test.rb
+++ b/activerecord/test/cases/calculations_test.rb
@@ -170,7 +170,6 @@ class CalculationsTest < ActiveRecord::TestCase
assert_equal 3, accounts.count(:firm_id)
assert_equal 3, accounts.select(:firm_id).count
- assert_equal 3, accounts.select("firm_id firm_id").count
end
def test_limit_should_apply_before_count_arel_attribute