提交 a8f6662d 编写于 作者: V Vipul A M

Remove deprecated calls to `SelectManage#insert` with preference to using `compile_insert`

上级 27330eba
......@@ -264,31 +264,6 @@ def to_a # :nodoc:
@engine.connection.send(:select, to_sql, 'AREL').map { |x| Row.new(x) }
end
# FIXME: this method should go away
def insert values
if $VERBOSE
warn <<-eowarn
insert (#{caller.first}) is deprecated and will be removed in Arel 4.0.0. Please
switch to `compile_insert`
eowarn
end
im = compile_insert(values)
table = @ctx.froms
primary_key = table.primary_key
primary_key_name = primary_key.name if primary_key
# FIXME: in AR tests values sometimes were Array and not Hash therefore is_a?(Hash) check is added
primary_key_value = primary_key && values.is_a?(Hash) && values[primary_key]
im.into table
# Oracle adapter needs primary key name to generate RETURNING ... INTO ... clause
# for tables which assign primary key value using trigger.
# RETURNING ... INTO ... clause will be added only if primary_key_value is nil
# therefore it is necessary to pass primary key value as well
@engine.connection.insert im.to_sql, 'AREL', primary_key_name, primary_key_value
end
private
def collapse exprs, existing = nil
exprs = exprs.unshift(existing.expr) if existing
......
......@@ -435,20 +435,6 @@ def test_join_sources
end
end
describe 'insert' do
it 'uses the select FROM' do
engine = EngineProxy.new Table.engine
table = Table.new :users
manager = Arel::SelectManager.new engine
manager.from table
manager.insert 'VALUES(NULL)'
engine.executed.last.must_be_like %{
INSERT INTO "users" VALUES(NULL)
}
end
end
describe 'lock' do
# This should fail on other databases
it 'adds a lock node' do
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册