aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors/to_sql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/visitors/to_sql.rb')
-rw-r--r--lib/arel/visitors/to_sql.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index f70cae9430..8638bf43c3 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -149,13 +149,24 @@ module Arel
"#{visit o.left} OR #{visit o.right}"
end
- def visit_Arel_Nodes_Equality o
+ def visit_Arel_Nodes_Assignment o
right = o.right
- # FIXME: maybe we should visit NilClass?
+
right = right.nil? ? 'NULL' : visit(right)
"#{visit o.left} = #{right}"
end
+ def visit_Arel_Nodes_Equality o
+ right = o.right
+
+ # FIXME: maybe we should visit NilClass?
+ if right.nil?
+ "#{visit o.left} IS NULL"
+ else
+ "#{visit o.left} = #{visit right}"
+ end
+ end
+
def visit_Arel_Nodes_UnqualifiedColumn o
"#{quote_column_name o.name}"
end