diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-01-16 03:42:55 -0200 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2016-01-16 03:42:55 -0200 |
commit | efe346f23a5c7489e32125529995640715ff8975 (patch) | |
tree | 314cbc683a61495c0ac76f7ee04f2226dd372d0c /activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb | |
parent | d3e2f1069857d278d162af2d3de1d9a3c3197f4b (diff) | |
parent | 89653edaf6845d50cc5ac6bc19815e581454ce77 (diff) | |
download | rails-efe346f23a5c7489e32125529995640715ff8975.tar.gz rails-efe346f23a5c7489e32125529995640715ff8975.tar.bz2 rails-efe346f23a5c7489e32125529995640715ff8975.zip |
Merge pull request #23067 from kamipo/sql_for_insert_returns_values_for_passing_to_exec_insert
`sql_for_insert` returns values for passing to `exec_insert`
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb index 11a151edd5..6c15facf3b 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb @@ -72,16 +72,6 @@ module ActiveRecord end end - # 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 = []) # :nodoc: - unless pk - # Extract the table from the insert sql. Yuck. - table_ref = extract_table_ref_from_insert_sql(sql) - pk = primary_key(table_ref) if table_ref - end - super - end - # The internal PostgreSQL identifier of the money data type. MONEY_COLUMN_TYPE_OID = 790 #:nodoc: # The internal PostgreSQL identifier of the BYTEA data type. @@ -162,12 +152,18 @@ module ActiveRecord end alias :exec_update :exec_delete - def sql_for_insert(sql, pk, id_value, sequence_name, binds) + def sql_for_insert(sql, pk, id_value, sequence_name, binds) # :nodoc: + unless pk + # Extract the table from the insert sql. Yuck. + table_ref = extract_table_ref_from_insert_sql(sql) + pk = primary_key(table_ref) if table_ref + end + if pk && use_insert_returning? sql = "#{sql} RETURNING #{quote_column_name(pk)}" end - [sql, binds] + super end def exec_insert(sql, name, binds, pk = nil, sequence_name = nil) |