Class: Gitlab::BackgroundMigration::BackfillDesiredShardingKeyPartitionJob

Inherits:
BackfillDesiredShardingKeyJob show all
Defined in:
lib/gitlab/background_migration/backfill_desired_sharding_key_partition_job.rb

Constant Summary

Constants inherited from BatchedMigrationJob

Gitlab::BackgroundMigration::BatchedMigrationJob::DEFAULT_FEATURE_CATEGORY

Constants included from Database::DynamicModelHelpers

Database::DynamicModelHelpers::BATCH_SIZE

Instance Method Summary collapse

Methods inherited from BackfillDesiredShardingKeyJob

#backfill_via_table_primary_key, #perform

Methods inherited from BatchedMigrationJob

#batch_metrics, cursor, cursor?, cursor_columns, feature_category, #filter_batch, generic_instance, #initialize, job_arguments, job_arguments_count, operation_name, #perform, scope_to

Methods included from Database::DynamicModelHelpers

#define_batchable_model, #each_batch, #each_batch_range

Constructor Details

This class inherits a constructor from Gitlab::BackgroundMigration::BatchedMigrationJob

Instance Method Details

#construct_query(sub_batch:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/gitlab/background_migration/backfill_desired_sharding_key_partition_job.rb', line 12

def construct_query(sub_batch:)
  <<~SQL
    UPDATE #{batch_table}
    SET #{backfill_column} = #{backfill_via_table}.#{backfill_via_column}
    FROM #{backfill_via_table}
    WHERE #{backfill_via_table}.id = #{batch_table}.#{backfill_via_foreign_key}
    AND #{backfill_via_table}.#{partition_column} = #{batch_table}.#{partition_column}
    AND #{batch_table}.#{batch_column} IN (#{sub_batch.select(batch_column).to_sql})
  SQL
end