From 2feac0de035174ddca0982c196895b6b5af4317f Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 27 Apr 2020 17:39:10 -0500 Subject: [PATCH] PostQueryBuilder#normalize_query: don't normalize aliases by default. `normalize_query` is used in certain places on the post index page where we don't want to pay the cost of looking up tag aliases (namely inside fast_count, in post_search_count_js, and in tag change notices). Don't normalize aliases by default unless we need to. --- app/logical/post_query_builder.rb | 2 +- app/models/saved_search.rb | 4 ++-- test/unit/post_query_builder_test.rb | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index ca24e07a3..8d1c2504b 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -746,7 +746,7 @@ class PostQueryBuilder end end - def normalize_query(normalize_aliases: true, sort: true) + def normalize_query(normalize_aliases: false, sort: true) tags = split_query tags = tags.map { |t| Tag.normalize_name(t) } tags = TagAlias.to_aliased(tags) if normalize_aliases diff --git a/app/models/saved_search.rb b/app/models/saved_search.rb index 2bb1ff99e..0413ce814 100644 --- a/app/models/saved_search.rb +++ b/app/models/saved_search.rb @@ -136,7 +136,7 @@ class SavedSearch < ApplicationRecord def queries_for(user_id, label: nil, options: {}) searches = SavedSearch.where(user_id: user_id) searches = searches.labeled(label) if label.present? - queries = searches.pluck(:query).map { |query| PostQueryBuilder.new(query).normalize_query(sort: true) } + queries = searches.pluck(:query).map { |query| PostQueryBuilder.new(query).normalize_query(normalize_aliases: true, sort: true) } queries.sort.uniq end end @@ -146,7 +146,7 @@ class SavedSearch < ApplicationRecord end def normalize_query - self.query = PostQueryBuilder.new(query).normalize_query(sort: false) + self.query = PostQueryBuilder.new(query).normalize_query(normalize_aliases: true, sort: false) end end diff --git a/test/unit/post_query_builder_test.rb b/test/unit/post_query_builder_test.rb index b33e3ab56..316e244f0 100644 --- a/test/unit/post_query_builder_test.rb +++ b/test/unit/post_query_builder_test.rb @@ -943,7 +943,8 @@ class PostQueryBuilderTest < ActiveSupport::TestCase assert_equal("foo", PostQueryBuilder.new(" foo ").normalize_query) assert_equal("foo", PostQueryBuilder.new("FOO").normalize_query) assert_equal("foo", PostQueryBuilder.new("foo foo").normalize_query) - assert_equal("grey", PostQueryBuilder.new("gray").normalize_query) + assert_equal("gray", PostQueryBuilder.new("gray").normalize_query) + assert_equal("grey", PostQueryBuilder.new("gray").normalize_query(normalize_aliases: true)) assert_equal("aaa bbb", PostQueryBuilder.new("bbb aaa").normalize_query) end end