提交 8f10ccd3 编写于 作者: J Jon Leighton

Ensure that ORDER BY clauses from default scopes are not included in...

Ensure that ORDER BY clauses from default scopes are not included in calculation queries. Fixes #406.
上级 b3791da0
...@@ -197,7 +197,7 @@ def operation_over_aggregate_column(column, operation, distinct) ...@@ -197,7 +197,7 @@ def operation_over_aggregate_column(column, operation, distinct)
def execute_simple_calculation(operation, column_name, distinct) #:nodoc: def execute_simple_calculation(operation, column_name, distinct) #:nodoc:
# Postgresql doesn't like ORDER BY when there are no GROUP BY # Postgresql doesn't like ORDER BY when there are no GROUP BY
relation = except(:order) relation = reorder(nil)
if operation == "count" && (relation.limit_value || relation.offset_value) if operation == "count" && (relation.limit_value || relation.offset_value)
# Shortcut when limit is zero. # Shortcut when limit is zero.
......
...@@ -462,4 +462,8 @@ def test_unscoped_with_named_scope_should_not_have_default_scope ...@@ -462,4 +462,8 @@ def test_unscoped_with_named_scope_should_not_have_default_scope
assert DeveloperCalledJamis.unscoped.poor.include?(developers(:david).becomes(DeveloperCalledJamis)) assert DeveloperCalledJamis.unscoped.poor.include?(developers(:david).becomes(DeveloperCalledJamis))
assert_equal 10, DeveloperCalledJamis.unscoped.poor.length assert_equal 10, DeveloperCalledJamis.unscoped.poor.length
end end
def test_default_scope_order_ignored_by_aggregations
assert_equal DeveloperOrderedBySalary.all.count, DeveloperOrderedBySalary.count
end
end end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册