From 1ba8ac0848f40c7fa18c9e7bdac944a50d3c348c Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Fri, 10 Sep 2010 13:36:42 -0700 Subject: differentiating equality and assignment --- lib/arel/visitors/to_sql.rb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'lib/arel/visitors') 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 -- cgit v1.2.3