diff options
-rw-r--r-- | lib/arel/nodes/count.rb | 2 | ||||
-rw-r--r-- | test/nodes/test_count.rb | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/arel/nodes/count.rb b/lib/arel/nodes/count.rb index a7c6236a22..4dd9be453f 100644 --- a/lib/arel/nodes/count.rb +++ b/lib/arel/nodes/count.rb @@ -2,6 +2,8 @@ module Arel module Nodes class Count < Arel::Nodes::Function + include Math + def initialize expr, distinct = false, aliaz = nil super(expr, aliaz) @distinct = distinct diff --git a/test/nodes/test_count.rb b/test/nodes/test_count.rb index 85e93b1927..29883df681 100644 --- a/test/nodes/test_count.rb +++ b/test/nodes/test_count.rb @@ -31,4 +31,13 @@ describe Arel::Nodes::Count do assert_equal 2, array.uniq.size end end + + describe 'math' do + it 'allows mathematical functions' do + table = Arel::Table.new :users + (table[:id].count + 1).to_sql.must_be_like %{ + (COUNT("users"."id") + 1) + } + end + end end |