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-02-25 00:08:03 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-25 00:08:03 +0300
commit0b5e5c78a9d7acbf773d7ba5fd5c2ce9b6ffdb52 (patch)
tree64e092630aca6e42462003414519f22266dcbc25 /lib/gitlab/database
parentd48b87d4675d6b8b56dd9b40afa9eb2dce32ad3b (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/database')
-rw-r--r--lib/gitlab/database/async_constraints.rb (renamed from lib/gitlab/database/async_foreign_keys.rb)4
-rw-r--r--lib/gitlab/database/async_constraints/foreign_key_validator.rb (renamed from lib/gitlab/database/async_foreign_keys/foreign_key_validator.rb)2
-rw-r--r--lib/gitlab/database/async_constraints/migration_helpers.rb (renamed from lib/gitlab/database/async_foreign_keys/migration_helpers.rb)20
-rw-r--r--lib/gitlab/database/async_constraints/postgres_async_constraint_validation.rb (renamed from lib/gitlab/database/async_foreign_keys/postgres_async_foreign_key_validation.rb)8
-rw-r--r--lib/gitlab/database/migration_helpers.rb2
-rw-r--r--lib/gitlab/database/reindexing.rb2
6 files changed, 21 insertions, 17 deletions
diff --git a/lib/gitlab/database/async_foreign_keys.rb b/lib/gitlab/database/async_constraints.rb
index 115ae9ba2e8..c4e05a88430 100644
--- a/lib/gitlab/database/async_foreign_keys.rb
+++ b/lib/gitlab/database/async_constraints.rb
@@ -2,11 +2,11 @@
module Gitlab
module Database
- module AsyncForeignKeys
+ module AsyncConstraints
DEFAULT_ENTRIES_PER_INVOCATION = 2
def self.validate_pending_entries!(how_many: DEFAULT_ENTRIES_PER_INVOCATION)
- PostgresAsyncForeignKeyValidation.ordered.limit(how_many).each do |record|
+ PostgresAsyncConstraintValidation.ordered.limit(how_many).each do |record|
ForeignKeyValidator.new(record).perform
end
end
diff --git a/lib/gitlab/database/async_foreign_keys/foreign_key_validator.rb b/lib/gitlab/database/async_constraints/foreign_key_validator.rb
index 1eb8588405d..a535a86913c 100644
--- a/lib/gitlab/database/async_foreign_keys/foreign_key_validator.rb
+++ b/lib/gitlab/database/async_constraints/foreign_key_validator.rb
@@ -2,7 +2,7 @@
module Gitlab
module Database
- module AsyncForeignKeys
+ module AsyncConstraints
class ForeignKeyValidator
include AsyncDdlExclusiveLeaseGuard
diff --git a/lib/gitlab/database/async_foreign_keys/migration_helpers.rb b/lib/gitlab/database/async_constraints/migration_helpers.rb
index eb33b9dc1f6..f51bb015c88 100644
--- a/lib/gitlab/database/async_foreign_keys/migration_helpers.rb
+++ b/lib/gitlab/database/async_constraints/migration_helpers.rb
@@ -2,17 +2,17 @@
module Gitlab
module Database
- module AsyncForeignKeys
+ module AsyncConstraints
module MigrationHelpers
# Prepares a foreign key for asynchronous validation.
#
- # Stores the FK information in the postgres_async_foreign_key_validations
+ # Stores the FK information in the postgres_async_constraint_validations
# table to be executed later.
#
def prepare_async_foreign_key_validation(table_name, column_name = nil, name: nil)
Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.require_ddl_mode!
- return unless async_fk_validation_available?
+ return unless async_constraint_validation_available?
fk_name = name || concurrent_foreign_key_name(table_name, column_name)
@@ -20,7 +20,7 @@ module Gitlab
raise missing_schema_object_message(table_name, "foreign key", fk_name)
end
- async_validation = PostgresAsyncForeignKeyValidation
+ async_validation = PostgresAsyncConstraintValidation
.find_or_create_by!(name: fk_name, table_name: table_name)
Gitlab::AppLogger.info(
@@ -34,11 +34,11 @@ module Gitlab
def unprepare_async_foreign_key_validation(table_name, column_name = nil, name: nil)
Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.require_ddl_mode!
- return unless async_fk_validation_available?
+ return unless async_constraint_validation_available?
fk_name = name || concurrent_foreign_key_name(table_name, column_name)
- PostgresAsyncForeignKeyValidation
+ PostgresAsyncConstraintValidation
.find_by(name: fk_name, table_name: table_name)
.try(&:destroy!)
end
@@ -46,7 +46,7 @@ module Gitlab
def prepare_partitioned_async_foreign_key_validation(table_name, column_name = nil, name: nil)
Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.require_ddl_mode!
- return unless async_fk_validation_available?
+ return unless async_constraint_validation_available?
Gitlab::Database::PostgresPartitionedTable.each_partition(table_name) do |partition|
prepare_async_foreign_key_validation(partition.identifier, column_name, name: name)
@@ -56,7 +56,7 @@ module Gitlab
def unprepare_partitioned_async_foreign_key_validation(table_name, column_name = nil, name: nil)
Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas.require_ddl_mode!
- return unless async_fk_validation_available?
+ return unless async_constraint_validation_available?
Gitlab::Database::PostgresPartitionedTable.each_partition(table_name) do |partition|
unprepare_async_foreign_key_validation(partition.identifier, column_name, name: name)
@@ -65,8 +65,8 @@ module Gitlab
private
- def async_fk_validation_available?
- connection.table_exists?(:postgres_async_foreign_key_validations)
+ def async_constraint_validation_available?
+ PostgresAsyncConstraintValidation.table_available?
end
end
end
diff --git a/lib/gitlab/database/async_foreign_keys/postgres_async_foreign_key_validation.rb b/lib/gitlab/database/async_constraints/postgres_async_constraint_validation.rb
index fb01c1e2025..ae996600f7c 100644
--- a/lib/gitlab/database/async_foreign_keys/postgres_async_foreign_key_validation.rb
+++ b/lib/gitlab/database/async_constraints/postgres_async_constraint_validation.rb
@@ -2,8 +2,8 @@
module Gitlab
module Database
- module AsyncForeignKeys
- class PostgresAsyncForeignKeyValidation < SharedModel
+ module AsyncConstraints
+ class PostgresAsyncConstraintValidation < SharedModel
include QueueErrorHandlingConcern
self.table_name = 'postgres_async_foreign_key_validations'
@@ -15,6 +15,10 @@ module Gitlab
validates :table_name, presence: true, length: { maximum: MAX_IDENTIFIER_LENGTH }
scope :ordered, -> { order(attempts: :asc, id: :asc) }
+
+ def self.table_available?
+ connection.table_exists?(table_name)
+ end
end
end
end
diff --git a/lib/gitlab/database/migration_helpers.rb b/lib/gitlab/database/migration_helpers.rb
index 08122875abc..271da2edbc9 100644
--- a/lib/gitlab/database/migration_helpers.rb
+++ b/lib/gitlab/database/migration_helpers.rb
@@ -14,7 +14,7 @@ module Gitlab
include DynamicModelHelpers
include RenameTableHelpers
include AsyncIndexes::MigrationHelpers
- include AsyncForeignKeys::MigrationHelpers
+ include AsyncConstraints::MigrationHelpers
def define_batchable_model(table_name, connection: self.connection)
super(table_name, connection: connection)
diff --git a/lib/gitlab/database/reindexing.rb b/lib/gitlab/database/reindexing.rb
index 78de7161a0f..739e573b6c4 100644
--- a/lib/gitlab/database/reindexing.rb
+++ b/lib/gitlab/database/reindexing.rb
@@ -28,7 +28,7 @@ module Gitlab
# Hack: Before we do actual reindexing work, create async indexes
Gitlab::Database::AsyncIndexes.create_pending_indexes! if Feature.enabled?(:database_async_index_creation, type: :ops)
Gitlab::Database::AsyncIndexes.drop_pending_indexes!
- Gitlab::Database::AsyncForeignKeys.validate_pending_entries! if Feature.enabled?(:database_async_foreign_key_validation, type: :ops)
+ Gitlab::Database::AsyncConstraints.validate_pending_entries! if Feature.enabled?(:database_async_foreign_key_validation, type: :ops)
automatic_reindexing
end