diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-09-14 14:58:34 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-09-14 14:58:34 -0700 |
commit | 37620b0c391076c557b7b03d20731e697b881b3e (patch) | |
tree | 7c60cec1be44ca5206207a61cbdaa000046de3a6 /lib/arel | |
parent | b12a0c33c0d26bdab076c4cffbfcccd406db0974 (diff) | |
download | rails-37620b0c391076c557b7b03d20731e697b881b3e.tar.gz rails-37620b0c391076c557b7b03d20731e697b881b3e.tar.bz2 rails-37620b0c391076c557b7b03d20731e697b881b3e.zip |
VALUES are getting better everyday
Diffstat (limited to 'lib/arel')
-rw-r--r-- | lib/arel/insert_manager.rb | 2 | ||||
-rw-r--r-- | lib/arel/nodes/values.rb | 5 | ||||
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 4 |
3 files changed, 6 insertions, 5 deletions
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 |