diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-02 03:09:56 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-02 03:09:56 +0300 |
commit | 926711e4546e0cf845c6cbe5773076f2195357f0 (patch) | |
tree | 92edf881d2be503589848c218a85d2a584cf0d19 /app/models/concerns/bulk_insert_safe.rb | |
parent | f7bc7dc5eafc4eef9043a3d1b2dcbc15ca76a571 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models/concerns/bulk_insert_safe.rb')
-rw-r--r-- | app/models/concerns/bulk_insert_safe.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/app/models/concerns/bulk_insert_safe.rb b/app/models/concerns/bulk_insert_safe.rb index 3748e77e933..908f0b6a7e2 100644 --- a/app/models/concerns/bulk_insert_safe.rb +++ b/app/models/concerns/bulk_insert_safe.rb @@ -141,6 +141,12 @@ module BulkInsertSafe raise ArgumentError, "returns needs to be :ids or nil" end + # Handle insertions for tables with a composite primary key + primary_keys = connection.schema_cache.primary_keys(table_name) + if unique_by.blank? && primary_key != primary_keys + unique_by = primary_keys + end + transaction do items.each_slice(batch_size).flat_map do |item_batch| attributes = _bulk_insert_item_attributes( |