aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-07-01 16:10:27 +0900
committerRyuta Kamizono <kamipo@gmail.com>2016-07-01 16:10:27 +0900
commit5d3a0b14c0439beab8e3af946dec88fddc07f896 (patch)
tree09969a55a032a695593388f82826cbba29352ef8 /activerecord/test
parent49a881e0db1ef64fcbae2b7ddccfd5ccea26ae01 (diff)
downloadrails-5d3a0b14c0439beab8e3af946dec88fddc07f896.tar.gz
rails-5d3a0b14c0439beab8e3af946dec88fddc07f896.tar.bz2
rails-5d3a0b14c0439beab8e3af946dec88fddc07f896.zip
Pass `pk: false` to `connection.insert` explicitly if do not have a primary key
Because causing an extra query by `sql_for_insert` for guessing a primary key. https://github.com/rails/rails/blob/v5.0.0/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb#L121-L125
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/primary_keys_test.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/test/cases/primary_keys_test.rb b/activerecord/test/cases/primary_keys_test.rb
index 52eac4a124..66b625cff5 100644
--- a/activerecord/test/cases/primary_keys_test.rb
+++ b/activerecord/test/cases/primary_keys_test.rb
@@ -174,6 +174,14 @@ class PrimaryKeysTest < ActiveRecord::TestCase
assert_equal '2', dashboard.id
end
+ def test_create_without_primary_key_no_extra_query
+ klass = Class.new(ActiveRecord::Base) do
+ self.table_name = 'dashboards'
+ end
+ klass.create! # warmup schema cache
+ assert_queries(3, ignore_none: true) { klass.create! }
+ end
+
if current_adapter?(:PostgreSQLAdapter)
def test_serial_with_quoted_sequence_name
column = MixedCaseMonkey.columns_hash[MixedCaseMonkey.primary_key]