aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-09-10 18:01:45 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-09-10 18:01:45 -0700
commit458ef3fb7d51ef2e9d1cd9513bdc225daffe8146 (patch)
treee67effbc092eee449f2368809c1a3980b6c976ac
parent77701cb501fe0dfe83ec9d13163c85423bc2770d (diff)
downloadrails-458ef3fb7d51ef2e9d1cd9513bdc225daffe8146.tar.gz
rails-458ef3fb7d51ef2e9d1cd9513bdc225daffe8146.tar.bz2
rails-458ef3fb7d51ef2e9d1cd9513bdc225daffe8146.zip
inserting false works a bit better
-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