diff options
author | Michael Koziarski <michael@koziarski.com> | 2008-04-04 12:06:22 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-04-04 12:06:22 +0000 |
commit | 50538fb524950798cd8896f693909bdbc620bd8e (patch) | |
tree | 56c4f4bc9c4db0c79b5a362e796535d2022b6b8c /activerecord/lib/active_record | |
parent | 295587f0ab3cdaa1875827a3c2e6a6686eac6ab2 (diff) | |
download | rails-50538fb524950798cd8896f693909bdbc620bd8e.tar.gz rails-50538fb524950798cd8896f693909bdbc620bd8e.tar.bz2 rails-50538fb524950798cd8896f693909bdbc620bd8e.zip |
Don't double include DISTINCT when the user has already specified it. Closes #11502 [kenneth.kalmer]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9223 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/calculations.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/calculations.rb b/activerecord/lib/active_record/calculations.rb index c3e7313f6d..490c8f4712 100644 --- a/activerecord/lib/active_record/calculations.rb +++ b/activerecord/lib/active_record/calculations.rb @@ -169,7 +169,10 @@ module ActiveRecord end end - sql = "SELECT #{operation}(#{'DISTINCT ' if options[:distinct]}#{column_name}) AS #{aggregate_alias}" + if options[:distinct] && column_name.to_s !~ /\s*DISTINCT\s+/i + distinct = 'DISTINCT ' + end + sql = "SELECT #{operation}(#{distinct}#{column_name}) AS #{aggregate_alias}" # A (slower) workaround if we're using a backend, like sqlite, that doesn't support COUNT DISTINCT. sql = "SELECT COUNT(*) AS #{aggregate_alias}" if use_workaround |