From 808b9e90a38c6c19e109da8eb5f2a264fd780d9a Mon Sep 17 00:00:00 2001 From: Emilio Tagua Date: Wed, 1 Jul 2009 20:29:33 -0300 Subject: Allow SQL strings to insert query. Insert should better return engine's result. --- lib/arel/engines/sql/relations/writes.rb | 11 ++++++++--- lib/arel/session.rb | 1 - 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/arel/engines/sql/relations/writes.rb b/lib/arel/engines/sql/relations/writes.rb index b90d380c64..d648a54d91 100644 --- a/lib/arel/engines/sql/relations/writes.rb +++ b/lib/arel/engines/sql/relations/writes.rb @@ -11,11 +11,17 @@ module Arel class Insert < Compound def to_sql(formatter = nil) + insertion_attributes_values_sql = if record.is_a?(Value) + record.value + else + build_query "(#{record.keys.collect { |key| engine.quote_column_name(key.name) }.join(', ')})", + "VALUES (#{record.collect { |key, value| key.format(value) }.join(', ')})" + end + build_query \ "INSERT", "INTO #{table_sql}", - "(#{record.keys.collect { |key| engine.quote_column_name(key.name) }.join(', ')})", - "VALUES (#{record.collect { |key, value| key.format(value) }.join(', ')})" + insertion_attributes_values_sql end end @@ -28,7 +34,6 @@ module Arel end protected - def assignment_sql if assignments.respond_to?(:collect) assignments.collect do |attribute, value| diff --git a/lib/arel/session.rb b/lib/arel/session.rb index abef5c543b..cf04e8a93a 100644 --- a/lib/arel/session.rb +++ b/lib/arel/session.rb @@ -24,7 +24,6 @@ module Arel module CRUD def create(insert) insert.call - insert end def read(select) -- cgit v1.2.3