Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:57:54 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-10-19 15:57:54 +0300
commit419c53ec62de6e97a517abd5fdd4cbde3a942a34 (patch)
tree1f43a548b46bca8a5fb8fe0c31cef1883d49c5b6 /app/models/loose_foreign_keys/deleted_record.rb
parent1da20d9135b3ad9e75e65b028bffc921aaf8deb7 (diff)
Add latest changes from gitlab-org/gitlab@16-5-stable-eev16.5.0-rc42
Diffstat (limited to 'app/models/loose_foreign_keys/deleted_record.rb')
-rw-r--r--app/models/loose_foreign_keys/deleted_record.rb34
1 files changed, 12 insertions, 22 deletions
diff --git a/app/models/loose_foreign_keys/deleted_record.rb b/app/models/loose_foreign_keys/deleted_record.rb
index 1d26c3c11e4..6af80686ec2 100644
--- a/app/models/loose_foreign_keys/deleted_record.rb
+++ b/app/models/loose_foreign_keys/deleted_record.rb
@@ -36,34 +36,24 @@ class LooseForeignKeys::DeletedRecord < Gitlab::Database::SharedModel
enum status: { pending: 1, processed: 2 }, _prefix: :status
def self.load_batch_for_table(table, batch_size)
- if Feature.enabled?("loose_foreign_keys_batch_load_using_union")
- partition_names = Gitlab::Database::PostgresPartitionedTable.each_partition(table_name).map(&:name)
-
- unions = partition_names.map do |partition_name|
- partition_number = partition_name[/\d+/].to_i
-
- select(arel_table[Arel.star], arel_table[:partition].as('partition_number'))
- .from("#{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}.#{partition_name} AS #{table_name}")
- .for_table(table)
- .where(partition: partition_number)
- .status_pending
- .consume_order
- .limit(batch_size)
- end
-
- select(arel_table[Arel.star])
- .from_union(unions, remove_duplicates: false, remove_order: false)
- .limit(batch_size)
- .to_a
- else
- # selecting partition as partition_number to workaround the sliding partitioning column ignore
+ partition_names = Gitlab::Database::PostgresPartitionedTable.each_partition(table_name).map(&:name)
+
+ unions = partition_names.map do |partition_name|
+ partition_number = partition_name[/\d+/].to_i
+
select(arel_table[Arel.star], arel_table[:partition].as('partition_number'))
+ .from("#{Gitlab::Database::DYNAMIC_PARTITIONS_SCHEMA}.#{partition_name} AS #{table_name}")
.for_table(table)
+ .where(partition: partition_number)
.status_pending
.consume_order
.limit(batch_size)
- .to_a
end
+
+ select(arel_table[Arel.star])
+ .from_union(unions, remove_duplicates: false, remove_order: false)
+ .limit(batch_size)
+ .to_a
end
def self.mark_records_processed(records)