aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/insert_manager.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/insert_manager.rb')
-rw-r--r--lib/arel/insert_manager.rb17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/arel/insert_manager.rb b/lib/arel/insert_manager.rb
index accabb4377..75e6299def 100644
--- a/lib/arel/insert_manager.rb
+++ b/lib/arel/insert_manager.rb
@@ -11,16 +11,23 @@ module Arel
end
def columns; @head.columns end
- def values; @head.values end
+ def values= val; @head.values = val; end
def insert fields
return if fields.empty?
- @head.relation ||= fields.first.first.relation
+ if String === fields
+ @head.values = SqlLiteral.new(fields)
+ else
+ @head.relation ||= fields.first.first.relation
- fields.each do |column, value|
- @head.columns << column
- @head.values << value
+ values = []
+
+ fields.each do |column, value|
+ @head.columns << column
+ values << value
+ end
+ @head.values = Nodes::Values.new values
end
end
end