About 2x speed-up on inboxes query
end
def account_media_status_ids
- @account.media_attachments.attached.reorder(nil).select(:status_id).distinct
+ @account.media_attachments.attached.reorder(nil).select(:status_id).group(:status_id)
end
def no_replies_scope
@statuses = @account.statuses.where(visibility: [:public, :unlisted])
if params[:media]
- account_media_status_ids = @account.media_attachments.attached.reorder(nil).select(:status_id).distinct
+ account_media_status_ids = @account.media_attachments.attached.reorder(nil).select(:status_id).group(:status_id)
@statuses.merge!(Status.where(id: account_media_status_ids))
end
end
def inboxes
- urls = reorder(nil).where(protocol: :activitypub).pluck(Arel.sql("distinct coalesce(nullif(accounts.shared_inbox_url, ''), accounts.inbox_url)"))
+ urls = reorder(nil).where(protocol: :activitypub).group(:preferred_inbox_url).pluck(Arel.sql("coalesce(nullif(accounts.shared_inbox_url, ''), accounts.inbox_url) AS preferred_inbox_url"))
DeliveryFailureTracker.without_unavailable(urls)
end
end
def account_domains
- accounts.pluck(Arel.sql('distinct domain')).compact
+ accounts.group(:domain).pluck(:domain).compact
end
def accounts