aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/nodes/count.rb2
-rw-r--r--test/nodes/test_count.rb9
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