提交 1704f766 编写于 作者: R Ryuta Kamizono

Merge pull request #36876 from kamipo/fix_group_by_aggregation_alias

Fix GROUP BY aggregation alias to not duplicate "_" chars
上级 85319e37
......@@ -321,7 +321,7 @@ def execute_grouped_calculation(operation, column_name, distinct) #:nodoc:
}
group_columns = group_aliases.zip(group_fields)
aggregate_alias = column_alias_for("#{operation}_#{column_name.to_s.downcase}")
aggregate_alias = column_alias_for("#{operation} #{column_name.to_s.downcase}")
select_values = [
operation_over_aggregate_column(
......@@ -374,8 +374,6 @@ def execute_grouped_calculation(operation, column_name, distinct) #:nodoc:
# column_alias_for("count(distinct users.id)") # => "count_distinct_users_id"
# column_alias_for("count(*)") # => "count_all"
def column_alias_for(field)
return field if field.match?(/\A\w{,#{connection.table_alias_length}}\z/)
column_alias = +field
column_alias.gsub!(/\*/, "all")
column_alias.gsub!(/\W+/, " ")
......
......@@ -805,6 +805,13 @@ def test_group_by_with_limit_and_offset
assert_equal expected, actual
end
def test_group_by_with_qouted_count_and_order_by_alias
quoted_posts_id = Post.connection.quote_table_name("posts.id")
expected = { "SpecialPost" => 1, "StiPost" => 1, "Post" => 9 }
actual = Post.group(:type).order("count_posts_id").count(quoted_posts_id)
assert_equal expected, actual
end
def test_pluck_not_auto_table_name_prefix_if_column_included
Company.create!(name: "test", contracts: [Contract.new(developer_id: 7)])
ids = Company.includes(:contracts).pluck(:developer_id)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册