about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2020-12-07 12:08:30 +0100
committerGitHub <noreply@github.com>2020-12-07 12:08:30 +0100
commit48bef17cc990afda95c4de657f7643c321e62650 (patch)
tree01636821b1bbf46667e625bd842ee0bde65470d8 /app/models
parenta8c471fcc043b61aa10cf8f849dfb552db7381d3 (diff)
Fix slow distinct queries where grouped queries are faster (#15287)
About 2x speed-up on inboxes query
Diffstat (limited to 'app/models')
-rw-r--r--app/models/account.rb2
-rw-r--r--app/models/form/account_batch.rb2
2 files changed, 2 insertions, 2 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index f794d8a29..ed11a514d 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -443,7 +443,7 @@ class Account < ApplicationRecord
     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
 
diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb
index 882770d7c..26d6d3abf 100644
--- a/app/models/form/account_batch.rb
+++ b/app/models/form/account_batch.rb
@@ -51,7 +51,7 @@ class Form::AccountBatch
   end
 
   def account_domains
-    accounts.pluck(Arel.sql('distinct domain')).compact
+    accounts.group(:domain).pluck(:domain).compact
   end
 
   def accounts