diff options
Diffstat (limited to 'lib/arel')
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index cb8df8329a..a350daa3da 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -370,11 +370,19 @@ key on UpdateManager using UpdateManager#key= end def visit_Arel_Nodes_In o - "#{visit o.left} IN (#{visit o.right})" + if Array === o.right && o.right.empty? + '1=0' + else + "#{visit o.left} IN (#{visit o.right})" + end end def visit_Arel_Nodes_NotIn o - "#{visit o.left} NOT IN (#{visit o.right})" + if Array === o.right && o.right.empty? + '1=1' + else + "#{visit o.left} NOT IN (#{visit o.right})" + end end def visit_Arel_Nodes_And o |