aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/algebra/primitives/expression.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/algebra/primitives/expression.rb')
-rw-r--r--lib/arel/algebra/primitives/expression.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/arel/algebra/primitives/expression.rb b/lib/arel/algebra/primitives/expression.rb
index b67a5e1f8e..989397720c 100644
--- a/lib/arel/algebra/primitives/expression.rb
+++ b/lib/arel/algebra/primitives/expression.rb
@@ -1,12 +1,12 @@
module Arel
class Expression < Attribute
- attributes :attribute, :function_sql, :alias, :ancestor
+ attributes :attribute, :alias, :ancestor
deriving :==
delegate :relation, :to => :attribute
alias_method :name, :alias
- def initialize(attribute, function_sql, aliaz = nil, ancestor = nil)
- @attribute, @function_sql, @alias, @ancestor = attribute, function_sql, aliaz, ancestor
+ def initialize(attribute, aliaz = nil, ancestor = nil)
+ @attribute, @alias, @ancestor = attribute, aliaz, ancestor
end
def aggregation?
@@ -15,11 +15,11 @@ module Arel
module Transformations
def as(aliaz)
- Expression.new(attribute, function_sql, aliaz, self)
+ self.class.new(attribute, aliaz, self)
end
def bind(new_relation)
- new_relation == relation ? self : Expression.new(attribute.bind(new_relation), function_sql, @alias, self)
+ new_relation == relation ? self : self.class.new(attribute.bind(new_relation), @alias, self)
end
def to_attribute
@@ -28,4 +28,12 @@ module Arel
end
include Transformations
end
+
+ class Count < Expression; end
+ class Distinct < Expression; end
+ class Sum < Expression; end
+ class Maximum < Expression; end
+ class Minimum < Expression; end
+ class Average < Expression; end
end
+