From 6a65d87f4dff317b37632fbe0a42027f606fd55c Mon Sep 17 00:00:00 2001
From: James Kiesel <james.kiesel@gmail.com>
Date: Tue, 20 Nov 2018 00:49:50 +1300
Subject: [PATCH] Simplify hashtag query service, perf increase for 'any' tags
 (#9298)

---
 app/services/hashtag_query_service.rb | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/app/services/hashtag_query_service.rb b/app/services/hashtag_query_service.rb
index 86558a4462..5773d78c6e 100644
--- a/app/services/hashtag_query_service.rb
+++ b/app/services/hashtag_query_service.rb
@@ -2,15 +2,14 @@
 
 class HashtagQueryService < BaseService
   def call(tag, params, account = nil, local = false)
-    any  = tags_for(params[:any])
+    tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id)
     all  = tags_for(params[:all])
     none = tags_for(params[:none])
 
-    @query = Status.as_tag_timeline(tag, account, local)
-                   .tagged_with_all(all)
-                   .tagged_with_none(none)
-    @query = @query.distinct.or(self.class.new.call(any, params.except(:any), account, local).distinct) if any
-    @query
+    Status.distinct
+          .as_tag_timeline(tags, account, local)
+          .tagged_with_all(all)
+          .tagged_with_none(none)
   end
 
   private
-- 
GitLab