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:
Diffstat (limited to 'config/initializers/active_record_relation_union_reset.rb')
-rw-r--r--config/initializers/active_record_relation_union_reset.rb36
1 files changed, 0 insertions, 36 deletions
diff --git a/config/initializers/active_record_relation_union_reset.rb b/config/initializers/active_record_relation_union_reset.rb
deleted file mode 100644
index b8b3d634a61..00000000000
--- a/config/initializers/active_record_relation_union_reset.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# frozen_string_literal: true
-
-module ActiveRecordRelationUnionReset
- MAX_RESET_PERIOD = 10.minutes
-
- def exec_queries
- super
- rescue ActiveRecord::StatementInvalid => e
- if reset_on_statement_invalid?(e)
- class_to_be_reset = klass.base_class
-
- class_to_be_reset.reset_column_information
- Gitlab::ErrorTracking.log_exception(e, { reset_model_name: class_to_be_reset.name })
-
- class_to_be_reset.previous_reset_columns_from_error = Time.now
- end
-
- raise
- end
-
- private
-
- def reset_on_statement_invalid?(exception)
- return false unless exception.message.include?("each UNION query must have the same number of columns")
-
- return false if klass.base_class.previous_reset_columns_from_error? &&
- klass.base_class.previous_reset_columns_from_error > MAX_RESET_PERIOD.ago
-
- Feature.enabled?(:reset_column_information_on_statement_invalid, type: :ops)
- end
-end
-
-ActiveSupport.on_load(:active_record) do
- ActiveRecord::Base.class_attribute :previous_reset_columns_from_error
- ActiveRecord::Relation.prepend(ActiveRecordRelationUnionReset)
-end