diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2016-01-05 08:05:46 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2016-01-05 10:02:29 +0900 |
commit | 326b12ae528433238b41941843849447fdbe7435 (patch) | |
tree | d69e417636e31cdf1082119997845ab5b081f0c2 /activerecord/test | |
parent | 9fb4efedfc6409eaf59a8a55771eecacbb9f5c71 (diff) | |
download | rails-326b12ae528433238b41941843849447fdbe7435.tar.gz rails-326b12ae528433238b41941843849447fdbe7435.tar.bz2 rails-326b12ae528433238b41941843849447fdbe7435.zip |
Fix `connection#create` in PG adapter
Originally `connection#create` had aliased to `connection#insert` in PG
adapter. But it was broken by #7447. Re-alias `create` to `insert` for
fixing it.
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/database_statements_test.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/activerecord/test/cases/database_statements_test.rb b/activerecord/test/cases/database_statements_test.rb index c689e97d83..ba085991e0 100644 --- a/activerecord/test/cases/database_statements_test.rb +++ b/activerecord/test/cases/database_statements_test.rb @@ -6,14 +6,23 @@ class DatabaseStatementsTest < ActiveRecord::TestCase end def test_insert_should_return_the_inserted_id + assert_not_nil return_the_inserted_id(method: :insert) + end + + def test_create_should_return_the_inserted_id + assert_not_nil return_the_inserted_id(method: :create) + end + + private + + def return_the_inserted_id(method:) # Oracle adapter uses prefetched primary key values from sequence and passes them to connection adapter insert method if current_adapter?(:OracleAdapter) sequence_name = "accounts_seq" id_value = @connection.next_sequence_value(sequence_name) - id = @connection.insert("INSERT INTO accounts (id, firm_id,credit_limit) VALUES (accounts_seq.nextval,42,5000)", nil, :id, id_value, sequence_name) + @connection.send(method, "INSERT INTO accounts (id, firm_id,credit_limit) VALUES (accounts_seq.nextval,42,5000)", nil, :id, id_value, sequence_name) else - id = @connection.insert("INSERT INTO accounts (firm_id,credit_limit) VALUES (42,5000)") + @connection.send(method, "INSERT INTO accounts (firm_id,credit_limit) VALUES (42,5000)") end - assert_not_nil id end end |