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 'rubocop/cop/migration/hash_index.rb')
-rw-r--r--rubocop/cop/migration/hash_index.rb53
1 files changed, 0 insertions, 53 deletions
diff --git a/rubocop/cop/migration/hash_index.rb b/rubocop/cop/migration/hash_index.rb
deleted file mode 100644
index 8becef891af..00000000000
--- a/rubocop/cop/migration/hash_index.rb
+++ /dev/null
@@ -1,53 +0,0 @@
-# frozen_string_literal: true
-
-require 'set'
-require_relative '../../migration_helpers'
-
-module RuboCop
- module Cop
- module Migration
- # Cop that prevents the use of hash indexes in database migrations
- class HashIndex < RuboCop::Cop::Cop
- include MigrationHelpers
-
- MSG = 'hash indexes should be avoided at all costs since they are not ' \
- 'recorded in the PostgreSQL WAL, you should use a btree index instead'
-
- NAMES = Set.new([:add_index, :index, :add_concurrent_index]).freeze
-
- def on_send(node)
- return unless in_migration?(node)
-
- name = node.children[1]
-
- return unless NAMES.include?(name)
-
- opts = node.children.last
-
- return unless opts && opts.type == :hash
-
- opts.each_node(:pair) do |pair|
- next unless hash_key_type(pair) == :sym &&
- hash_key_name(pair) == :using
-
- if hash_key_value(pair).to_s == 'hash'
- add_offense(pair, location: :expression)
- end
- end
- end
-
- def hash_key_type(pair)
- pair.children[0].type
- end
-
- def hash_key_name(pair)
- pair.children[0].children[0]
- end
-
- def hash_key_value(pair)
- pair.children[1].children[0]
- end
- end
- end
- end
-end