PERF: avoid filtering shared drafts when not used

In some very specific cases (large sites) shared drafts can introduce a
performance hit due to the mechanism used to filter out topics

This avoids the entire process when shared drafts are not enabled
This commit is contained in:
Sam Saffron 2019-08-29 11:35:31 +10:00
parent d6b1c1ce40
commit 30f9200fc7

View File

@ -589,6 +589,11 @@ class TopicQuery
end
def apply_shared_drafts(result, category_id, options)
# PERF: avoid any penalty if there are no shared drafts enabled
# on some sites the cost can be high eg: gearbox
return result if SiteSetting.shared_drafts_category == ""
drafts_category_id = SiteSetting.shared_drafts_category.to_i
viewing_shared = category_id && category_id == drafts_category_id
can_create_shared = guardian.can_create_shared_draft?