diff options
Diffstat (limited to 'lib/arel/visitors')
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 15 |
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 |