aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/visitors/to_sql.rb2
-rw-r--r--spec/arel/insert_manager_spec.rb9
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index 761f315763..66e997a986 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -43,7 +43,7 @@ module Arel
def visit_Arel_Nodes_Values o
"VALUES (#{o.expressions.map { |value|
- value ? visit(value) : 'NULL'
+ value.nil? ? 'NULL' : visit(value)
}.join ', '})"
end
diff --git a/spec/arel/insert_manager_spec.rb b/spec/arel/insert_manager_spec.rb
index 807f1324d2..a6d34f4357 100644
--- a/spec/arel/insert_manager_spec.rb
+++ b/spec/arel/insert_manager_spec.rb
@@ -9,6 +9,15 @@ module Arel
end
describe 'insert' do
+ it "inserts false" do
+ table = Table.new(:users)
+ manager = Arel::InsertManager.new Table.engine
+ manager.insert [[table[:id], false]]
+ manager.to_sql.should be_like %{
+ INSERT INTO "users" ("id") VALUES ('f')
+ }
+ end
+
it "inserts null" do
table = Table.new(:users)
manager = Arel::InsertManager.new Table.engine