aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/engines/sql/primitives.rb4
-rw-r--r--spec/arel/engines/sql/unit/primitives/literal_spec.rb12
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/arel/engines/sql/primitives.rb b/lib/arel/engines/sql/primitives.rb
index bb3bed78e6..a08ca11c12 100644
--- a/lib/arel/engines/sql/primitives.rb
+++ b/lib/arel/engines/sql/primitives.rb
@@ -3,10 +3,12 @@ module Arel
def relation
nil
end
-
+
def to_sql(formatter = nil)
self
end
+
+ include Attribute::Expressions
end
class Attribute
diff --git a/spec/arel/engines/sql/unit/primitives/literal_spec.rb b/spec/arel/engines/sql/unit/primitives/literal_spec.rb
index c7ff1cf879..ed8bea339b 100644
--- a/spec/arel/engines/sql/unit/primitives/literal_spec.rb
+++ b/spec/arel/engines/sql/unit/primitives/literal_spec.rb
@@ -18,6 +18,18 @@ module Arel
sql.should be_like(%Q{SELECT COUNT(*) AS count_id FROM "users"})
end
end
+
+ it "manufactures expressions on literal SQL fragment" do
+ sql = @relation.project(SqlLiteral.new("2 * credit_limit").sum).to_sql
+
+ adapter_is :mysql do
+ sql.should be_like(%Q{SELECT SUM(2 * credit_limit) AS sum_id FROM `users`})
+ end
+
+ adapter_is_not :mysql do
+ sql.should be_like(%Q{SELECT SUM(2 * credit_limit) AS sum_id FROM "users"})
+ end
+ end
end
end
end