summaryrefslogtreecommitdiff
path: root/lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb')
-rw-r--r--lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb b/lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb
index 67cf7018ded..69a69091b5c 100644
--- a/lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb
+++ b/lib/gitlab/database/partitioning/ci_sliding_list_strategy.rb
@@ -5,9 +5,11 @@ module Gitlab
module Partitioning
class CiSlidingListStrategy < SlidingListStrategy
def initial_partition
- partition_name = [table_name.to_s.delete_prefix('p_'), 100].join('_')
+ partition_for(100)
+ end
- SingleNumericListPartition.new(table_name, 100, partition_name: partition_name)
+ def next_partition
+ partition_for(active_partition.value + 1)
end
def validate_and_fix; end
@@ -21,6 +23,17 @@ module Gitlab
private
def ensure_partitioning_column_ignored_or_readonly!; end
+
+ def partition_for(value)
+ SingleNumericListPartition.new(table_name, value, partition_name: partition_name(value))
+ end
+
+ def partition_name(value)
+ [
+ table_name.to_s.delete_prefix('p_'),
+ value
+ ].join('_')
+ end
end
end
end