From 8bc1e7bf90f6bbccc102ae857cc1f44bbecd7d17 Mon Sep 17 00:00:00 2001 From: Steven Burnett Date: Thu, 25 Jan 2018 10:43:02 -0700 Subject: [PATCH] add indexes for discussion_topics searching fixes COMMS-745 Test Plan: - run migrations - discussion_topic searching still works Change-Id: I9aee3e1ca502385911b2959c3e53f013ef727bbf Reviewed-on: https://gerrit.instructure.com/139112 Reviewed-by: Cody Cutrer Tested-by: Jenkins QA-Review: Venk Natarajan Product-Review: Steven Burnett --- ...ist_indexes_for_discussion_topic_search.rb | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 db/migrate/20180125172528_add_gist_indexes_for_discussion_topic_search.rb diff --git a/db/migrate/20180125172528_add_gist_indexes_for_discussion_topic_search.rb b/db/migrate/20180125172528_add_gist_indexes_for_discussion_topic_search.rb new file mode 100644 index 00000000000..28cf0f7308e --- /dev/null +++ b/db/migrate/20180125172528_add_gist_indexes_for_discussion_topic_search.rb @@ -0,0 +1,30 @@ +# +# Copyright (C) 2013 - present Instructure, Inc. +# +# This file is part of Canvas. +# +# Canvas is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, version 3 of the License. +# +# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. +# +# You should have received a copy of the GNU Affero General Public License along +# with this program. If not, see . + +class AddGistIndexesForDiscussionTopicSearch < ActiveRecord::Migration[5.0] + disable_ddl_transaction! + tag :predeploy + def self.up + if (schema = connection.extension_installed?(:pg_trgm)) + add_index :discussion_topics, "LOWER(title) #{schema}.gist_trgm_ops", name: "index_trgm_discussion_topics_title", using: :gist, algorithm: :concurrently + end + end + + def self.down + remove_index :discussion_topics, name: 'index_trgm_discussion_topics_title' + end +end