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.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user