aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/nodes/named_function.rb2
-rw-r--r--test/visitors/test_to_sql.rb6
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/arel/nodes/named_function.rb b/lib/arel/nodes/named_function.rb
index 56669bf858..5fca33e323 100644
--- a/lib/arel/nodes/named_function.rb
+++ b/lib/arel/nodes/named_function.rb
@@ -3,6 +3,8 @@ module Arel
class NamedFunction < Arel::Nodes::Function
attr_accessor :name
+ include Arel::Predications
+
def initialize name, expr, aliaz = nil
super(expr, aliaz)
@name = name
diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb
index 0c7baab923..c8ad40e242 100644
--- a/test/visitors/test_to_sql.rb
+++ b/test/visitors/test_to_sql.rb
@@ -20,6 +20,12 @@ module Arel
assert_equal 'omg(*)', @visitor.accept(function)
end
+ it 'should chain predications on named functions' do
+ function = Nodes::NamedFunction.new('omg', [Arel.star])
+ sql = @visitor.accept(function.eq(2))
+ sql.must_be_like %{ omg(*) = 2 }
+ end
+
it 'works with lists' do
function = Nodes::NamedFunction.new('omg', [Arel.star, Arel.star])
assert_equal 'omg(*, *)', @visitor.accept(function)