From 37620b0c391076c557b7b03d20731e697b881b3e Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 14 Sep 2010 14:58:34 -0700 Subject: VALUES are getting better everyday --- lib/arel/insert_manager.rb | 2 +- lib/arel/nodes/values.rb | 5 +++-- lib/arel/visitors/to_sql.rb | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/arel/insert_manager.rb b/lib/arel/insert_manager.rb index 75e6299def..1759475542 100644 --- a/lib/arel/insert_manager.rb +++ b/lib/arel/insert_manager.rb @@ -27,7 +27,7 @@ module Arel @head.columns << column values << value end - @head.values = Nodes::Values.new values + @head.values = Nodes::Values.new values, @head.columns end end end diff --git a/lib/arel/nodes/values.rb b/lib/arel/nodes/values.rb index eab70a362a..4c7ca76360 100644 --- a/lib/arel/nodes/values.rb +++ b/lib/arel/nodes/values.rb @@ -1,10 +1,11 @@ module Arel module Nodes class Values - attr_accessor :expressions + attr_accessor :expressions, :columns - def initialize exprs + def initialize exprs, columns = [] @expressions = exprs + @columns = columns end end end diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index dc65e86219..46f70d0f7c 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -46,8 +46,8 @@ module Arel end def visit_Arel_Nodes_Values o - "VALUES (#{o.expressions.map { |value| - value.nil? ? 'NULL' : visit(value) + "VALUES (#{o.expressions.zip(o.columns).map { |value, column| + quote(value, column && column.column) }.join ', '})" end -- cgit v1.2.3