Ensure that ORDER BY clauses from default scopes are not included in calculation queries. Fixes #406.

This commit is contained in:
Jon Leighton 2011-05-08 23:31:16 +01:00
parent b3791da031
commit 8f10ccd311
2 changed files with 5 additions and 1 deletions

@ -197,7 +197,7 @@ def operation_over_aggregate_column(column, operation, distinct)
def execute_simple_calculation(operation, column_name, distinct) #:nodoc:
# 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)
# Shortcut when limit is zero.

@ -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_equal 10, DeveloperCalledJamis.unscoped.poor.length
end
def test_default_scope_order_ignored_by_aggregations
assert_equal DeveloperOrderedBySalary.all.count, DeveloperOrderedBySalary.count
end
end