aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/nodes
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/nodes')
-rw-r--r--lib/arel/nodes/count.rb3
-rw-r--r--lib/arel/nodes/function.rb3
-rw-r--r--lib/arel/nodes/named_function.rb12
3 files changed, 14 insertions, 4 deletions
diff --git a/lib/arel/nodes/count.rb b/lib/arel/nodes/count.rb
index c6e19afb34..5c8ade1cf9 100644
--- a/lib/arel/nodes/count.rb
+++ b/lib/arel/nodes/count.rb
@@ -1,9 +1,6 @@
module Arel
module Nodes
class Count < Arel::Nodes::Function
-
- attr_accessor :distinct
-
def initialize expr, distinct = false, aliaz = nil
super(expr, aliaz)
@distinct = distinct
diff --git a/lib/arel/nodes/function.rb b/lib/arel/nodes/function.rb
index e4e45bff31..b58eba7f38 100644
--- a/lib/arel/nodes/function.rb
+++ b/lib/arel/nodes/function.rb
@@ -2,11 +2,12 @@ module Arel
module Nodes
class Function < Arel::Nodes::Node
include Arel::Expression
- attr_accessor :expressions, :alias
+ attr_accessor :expressions, :alias, :distinct
def initialize expr, aliaz = nil
@expressions = expr
@alias = aliaz
+ @distinct = false
end
def as aliaz
diff --git a/lib/arel/nodes/named_function.rb b/lib/arel/nodes/named_function.rb
new file mode 100644
index 0000000000..56669bf858
--- /dev/null
+++ b/lib/arel/nodes/named_function.rb
@@ -0,0 +1,12 @@
+module Arel
+ module Nodes
+ class NamedFunction < Arel::Nodes::Function
+ attr_accessor :name
+
+ def initialize name, expr, aliaz = nil
+ super(expr, aliaz)
+ @name = name
+ end
+ end
+ end
+end