diff --git a/app/controllers/api/v1/timelines/tag_controller.rb b/app/controllers/api/v1/timelines/tag_controller.rb index 2d6ad5a80..62f34d3f7 100644 --- a/app/controllers/api/v1/timelines/tag_controller.rb +++ b/app/controllers/api/v1/timelines/tag_controller.rb @@ -33,9 +33,7 @@ class Api::V1::Timelines::TagController < Api::BaseController ) if truthy_param?(:only_media) - # `SELECT DISTINCT id, updated_at` is too slow, so pluck ids at first, and then select id, updated_at with ids. - status_ids = statuses.joins(:media_attachments).distinct(:id).pluck(:id) - statuses.where(id: status_ids) + statuses.joins(:media_attachments) else statuses end diff --git a/app/services/hashtag_query_service.rb b/app/services/hashtag_query_service.rb index 196de0639..0bdf60221 100644 --- a/app/services/hashtag_query_service.rb +++ b/app/services/hashtag_query_service.rb @@ -8,7 +8,7 @@ class HashtagQueryService < BaseService all = tags_for(params[:all]) none = tags_for(params[:none]) - Status.distinct + Status.group(:id) .as_tag_timeline(tags, account, local) .tagged_with_all(all) .tagged_with_none(none)