aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/visitors')
-rw-r--r--lib/arel/visitors/mysql.rb5
-rw-r--r--lib/arel/visitors/to_sql.rb4
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/arel/visitors/mysql.rb b/lib/arel/visitors/mysql.rb
index 594fd5504a..afffd37f9b 100644
--- a/lib/arel/visitors/mysql.rb
+++ b/lib/arel/visitors/mysql.rb
@@ -10,6 +10,11 @@ module Arel
super
end
+ def visit_Arel_Nodes_SelectCore o
+ o.froms ||= Arel.sql('DUAL')
+ super
+ end
+
def visit_Arel_Nodes_UpdateStatement o
[
"UPDATE #{visit o.relation}",
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index 1412797fb5..b6af47cc57 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -48,6 +48,7 @@ module Arel
("WHERE #{wheres.map { |x| visit x }.join ' AND '}" unless wheres.empty?)
].compact.join ' '
end
+
def visit_Arel_Nodes_InsertStatement o
[
"INSERT INTO #{visit o.relation}",
@@ -61,7 +62,8 @@ module Arel
end
def visit_Arel_Nodes_Exists o
- "EXISTS (#{visit o.select_stmt})"
+ "EXISTS (#{visit o.select_stmt})#{
+ o.alias ? " AS #{visit o.alias}" : ''}"
end
def visit_Arel_Nodes_Values o