aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-01-07 04:38:36 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-01-07 05:13:29 +0900
commit2bce5adf5c952bdb1cc0110dd2091821ecfd4493 (patch)
treecd30e0ccc847632c0f1dceb81a061ffa87b7a2e4 /activerecord/lib/active_record/connection_adapters/abstract
parentcc58837f64855a0d45106248da8154f22f6e5bbb (diff)
downloadrails-2bce5adf5c952bdb1cc0110dd2091821ecfd4493.tar.gz
rails-2bce5adf5c952bdb1cc0110dd2091821ecfd4493.tar.bz2
rails-2bce5adf5c952bdb1cc0110dd2091821ecfd4493.zip
Refactor `connection.insert_sql`
`connection.insert_sql` is almost the same as `connection.insert`.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
index 008f356601..4d12c19b47 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
@@ -115,9 +115,7 @@ module ActiveRecord
# If the next id was calculated in advance (as in Oracle), it should be
# passed in as +id_value+.
def insert(arel, name = nil, pk = nil, id_value = nil, sequence_name = nil, binds = [])
- sql, binds = sql_for_insert(to_sql(arel, binds), pk, id_value, sequence_name, binds)
- value = exec_insert(sql, name, binds, pk, sequence_name)
- id_value || last_inserted_id(value)
+ insert_sql(to_sql(arel, binds), name, pk, id_value, sequence_name, binds)
end
alias create insert
@@ -352,6 +350,13 @@ module ActiveRecord
end
alias join_to_delete join_to_update
+ # Executes an INSERT query and returns the new record's ID
+ def insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil, binds = [])
+ sql, binds = sql_for_insert(sql, pk, id_value, sequence_name, binds)
+ value = exec_insert(sql, name, binds, pk, sequence_name)
+ id_value || last_inserted_id(value)
+ end
+
protected
# Returns a subquery for the given key using the join information.
@@ -370,12 +375,6 @@ module ActiveRecord
exec_query(sql, name, binds, prepare: true)
end
- # Returns the last auto-generated ID from the affected table.
- def insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)
- execute(sql, name)
- id_value
- end
-
# Executes the update statement and returns the number of rows affected.
def update_sql(sql, name = nil)
execute(sql, name)