diff options
-rw-r--r-- | lib/arel/insert_manager.rb | 6 | ||||
-rw-r--r-- | lib/arel/nodes.rb | 1 | ||||
-rw-r--r-- | lib/arel/nodes/tuple.rb | 13 | ||||
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 14 | ||||
-rw-r--r-- | test/test_insert_manager.rb | 19 | ||||
-rw-r--r-- | test/test_table.rb | 4 | ||||
-rw-r--r-- | test/visitors/test_to_sql.rb | 2 |
7 files changed, 5 insertions, 54 deletions
diff --git a/lib/arel/insert_manager.rb b/lib/arel/insert_manager.rb index 3c95ca6443..f9a598e8b7 100644 --- a/lib/arel/insert_manager.rb +++ b/lib/arel/insert_manager.rb @@ -37,12 +37,8 @@ module Arel self end - def create_values values, columns = nil + def create_values values, columns Nodes::Values.new values, columns end - - def create_tuple values - Nodes::Tuple.new values - end end end diff --git a/lib/arel/nodes.rb b/lib/arel/nodes.rb index d178e8d2ed..8c9815a96b 100644 --- a/lib/arel/nodes.rb +++ b/lib/arel/nodes.rb @@ -6,7 +6,6 @@ require 'arel/nodes/select_core' require 'arel/nodes/insert_statement' require 'arel/nodes/update_statement' require 'arel/nodes/bind_param' -require 'arel/nodes/tuple' # terminal diff --git a/lib/arel/nodes/tuple.rb b/lib/arel/nodes/tuple.rb deleted file mode 100644 index 4e088a79aa..0000000000 --- a/lib/arel/nodes/tuple.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true -module Arel - module Nodes - class Tuple < Node - attr_reader :values - - def initialize(values) - @values = values - super() - end - end - end -end diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index 7143d4e76a..486c51a183 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -131,7 +131,6 @@ module Arel end if o.values - collector << " VALUES" maybe_visit o.values, collector elsif o.select maybe_visit o.select, collector @@ -167,19 +166,8 @@ module Arel collector << "FALSE" end - def visit_Arel_Nodes_Tuple o, collector - len = o.values.length - 1 - o.values.each_with_index { |value, i| - collector = visit value, collector - unless i == len - collector << COMMA - end - } - collector - end - def visit_Arel_Nodes_Values o, collector - collector << "(" + collector << "VALUES (" len = o.expressions.length - 1 o.expressions.each_with_index { |value, i| diff --git a/test/test_insert_manager.rb b/test/test_insert_manager.rb index 46549c1ae4..b9ee6f76ac 100644 --- a/test/test_insert_manager.rb +++ b/test/test_insert_manager.rb @@ -28,25 +28,6 @@ module Arel } end - it 'inserts multiple values' do - table = Table.new(:users) - manager = Arel::InsertManager.new - manager.into table - - manager.columns << table[:id] - manager.columns << table[:name] - - manager.values = manager.create_tuple([ - manager.create_values(%w{ 1 david }), - manager.create_values(%w{ 2 kirs }), - manager.create_values(["3", Arel.sql('DEFAULT')], []), - ]) - - manager.to_sql.must_be_like %{ - INSERT INTO \"users\" (\"id\", \"name\") VALUES ('1', 'david'), ('2', 'kirs'), ('3', DEFAULT) - } - end - it "inserts false" do table = Table.new(:users) manager = Arel::InsertManager.new diff --git a/test/test_table.rb b/test/test_table.rb index e83d04d2bd..9877d24541 100644 --- a/test/test_table.rb +++ b/test/test_table.rb @@ -42,10 +42,10 @@ module Arel end it 'should return an insert manager' do - im = @relation.compile_insert '(NULL)' + im = @relation.compile_insert 'VALUES(NULL)' assert_kind_of Arel::InsertManager, im im.into Table.new(:users) - assert_equal "INSERT INTO \"users\" VALUES (NULL)", im.to_sql + assert_equal "INSERT INTO \"users\" VALUES(NULL)", im.to_sql end describe 'skip' do diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb index 52f9855545..31279b0ae2 100644 --- a/test/visitors/test_to_sql.rb +++ b/test/visitors/test_to_sql.rb @@ -26,7 +26,7 @@ module Arel bp = Nodes::BindParam.new values = Nodes::Values.new([bp]) sql = compile values - sql.must_be_like '(?)' + sql.must_be_like 'VALUES (?)' end it 'can define a dispatch method' do |