提交 0df0dfbf 编写于 作者: R Ryuta Kamizono

Should keep the table name qualified `*` for distinct subquery

上级 a265d4b2
......@@ -388,7 +388,7 @@ def select_for_count
def build_count_subquery(relation, column_name, distinct)
relation.select_values = [
if column_name == :all
distinct ? Arel.star : Arel.sql("1")
distinct ? table[Arel.star] : Arel.sql("1")
else
column_alias = Arel.sql("count_column")
aggregate_column(column_name).as(column_alias)
......
......@@ -248,6 +248,18 @@ def test_distinct_count_with_order_and_limit_and_offset
assert_equal 4, Account.distinct.order(:firm_id).limit(4).offset(2).count
end
def test_distinct_joins_count_with_order_and_limit
assert_equal 3, Account.joins(:firm).distinct.order(:firm_id).limit(3).count
end
def test_distinct_joins_count_with_order_and_offset
assert_equal 3, Account.joins(:firm).distinct.order(:firm_id).offset(2).count
end
def test_distinct_joins_count_with_order_and_limit_and_offset
assert_equal 3, Account.joins(:firm).distinct.order(:firm_id).limit(3).offset(2).count
end
def test_should_group_by_summed_field_having_condition
c = Account.group(:firm_id).having("sum(credit_limit) > 50").sum(:credit_limit)
assert_nil c[1]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册