aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_relation/sql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/active_relation/sql.rb')
-rw-r--r--lib/active_relation/sql.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/active_relation/sql.rb b/lib/active_relation/sql.rb
index 89f6193cd8..bc658271c3 100644
--- a/lib/active_relation/sql.rb
+++ b/lib/active_relation/sql.rb
@@ -17,8 +17,8 @@ module ActiveRelation
"#{quote_table_name(relation_name)}.#{quote_column_name(attribute_name)}" + (aliaz ? " AS #{quote(aliaz.to_s)}" : "")
end
- def select(select_sql)
- "(#{select_sql})"
+ def select(select_sql, aliaz)
+ "(#{select_sql}) AS #{quote_column_name(aliaz)}"
end
end
@@ -31,17 +31,23 @@ module ActiveRelation
scalar
end
- def select(select_sql)
+ def select(select_sql, aliaz)
"(#{select_sql})"
end
end
class Select < Strategy
- def select(select_sql)
+ def select(select_sql, aliaz)
select_sql
end
end
+ class Aggregation < Strategy
+ def select(select_sql, aliaz)
+ "(#{select_sql}) AS #{quote_table_name(aliaz)}"
+ end
+ end
+
class Scalar < Strategy
def scalar(scalar)
quote(scalar)