diff --git a/db/post_migrate/20221121181627_drop_index_on_vulnerabilities_state_case_id_desc.rb b/db/post_migrate/20221121181627_drop_index_on_vulnerabilities_state_case_id_desc.rb new file mode 100644 index 0000000000000000000000000000000000000000..712343bc7b0c8b1a47b9f0469f1331dead4d919d --- /dev/null +++ b/db/post_migrate/20221121181627_drop_index_on_vulnerabilities_state_case_id_desc.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class DropIndexOnVulnerabilitiesStateCaseIdDesc < Gitlab::Database::Migration[2.0] + INDEX_NAME = "index_vulnerabilities_on_state_case_id_desc" + disable_ddl_transaction! + + def up + remove_concurrent_index_by_name( + :vulnerabilities, + INDEX_NAME + ) + end + + def down + execute <<~SQL + CREATE INDEX CONCURRENTLY index_vulnerabilities_on_state_case_id_desc ON vulnerabilities + USING btree (array_position(ARRAY[(1)::smallint, (4)::smallint, (3)::smallint, (2)::smallint], state) DESC, id DESC); + SQL + end +end diff --git a/db/schema_migrations/20221121181627 b/db/schema_migrations/20221121181627 new file mode 100644 index 0000000000000000000000000000000000000000..2be29d4fcec29abe206304425a98d8b2c4943757 --- /dev/null +++ b/db/schema_migrations/20221121181627 @@ -0,0 +1 @@ +91c8b8327b502611b47400f229204f3093b87f6dd555c7471a2a827c0ee2d7fe \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 0e8904c919ecf74b6091ef987f4fb424992b1a84..3331998bdbfb47a4a755e1a86efc8ff60a584e56 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -31149,8 +31149,6 @@ CREATE INDEX index_vulnerabilities_on_resolved_by_id ON vulnerabilities USING bt CREATE INDEX index_vulnerabilities_on_start_date_sourcing_milestone_id ON vulnerabilities USING btree (start_date_sourcing_milestone_id); -CREATE INDEX index_vulnerabilities_on_state_case_id_desc ON vulnerabilities USING btree (array_position(ARRAY[(1)::smallint, (4)::smallint, (3)::smallint, (2)::smallint], state) DESC, id DESC); - CREATE INDEX index_vulnerabilities_on_updated_by_id ON vulnerabilities USING btree (updated_by_id); CREATE INDEX index_vulnerabilities_project_id_and_id_on_default_branch ON vulnerabilities USING btree (project_id, id) WHERE (present_on_default_branch IS TRUE); diff --git a/ee/spec/models/ee/vulnerability_spec.rb b/ee/spec/models/ee/vulnerability_spec.rb index 2694c138353820cb90a3fc2764543f692aa97231..25e413983e5f7cd7151990dc6cac2b1c7b53429c 100644 --- a/ee/spec/models/ee/vulnerability_spec.rb +++ b/ee/spec/models/ee/vulnerability_spec.rb @@ -29,7 +29,7 @@ let_it_be(:vulnerability) { create(:vulnerability, :sast, :confirmed, :low, project: project) } let_it_be(:finding) { create(:vulnerabilities_finding, vulnerability: vulnerability) } - it { is_expected.to have_locked_schema('9e0c8a8eec7c990209307db76b07c6a3d33a21ab2145de14bbd3237b1d46e5fa').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') } + it { is_expected.to have_locked_schema('68d13447d3ba569e33f1511e585a20378d91667434fe8f0709bd6ace626d33f2').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') } describe 'enums' do it { is_expected.to define_enum_for(:state).with_values(state_values) }