mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
PERF: Cache Category.subcategory_ids (#9350)
Also reset category cache after backup restore.
This commit is contained in:
@@ -669,7 +669,7 @@ class TopicQuery
|
||||
if options[:no_subcategories]
|
||||
result = result.where('categories.id = ?', category_id)
|
||||
else
|
||||
result = result.where(<<~SQL, subcategory_ids: subcategory_ids(category_id), category_id: category_id)
|
||||
result = result.where(<<~SQL, subcategory_ids: Category.subcategory_ids(category_id), category_id: category_id)
|
||||
categories.id in (:subcategory_ids) AND (
|
||||
categories.topic_id <> topics.id OR categories.id = :category_id
|
||||
)
|
||||
@@ -1052,11 +1052,6 @@ class TopicQuery
|
||||
|
||||
private
|
||||
|
||||
def subcategory_ids(category_id)
|
||||
@subcategory_ids ||= {}
|
||||
@subcategory_ids[category_id] ||= Category.subcategory_ids(category_id)
|
||||
end
|
||||
|
||||
def sanitize_sql_array(input)
|
||||
ActiveRecord::Base.public_send(:sanitize_sql_array, input.join(','))
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user