From 20f893161b0b364b0ea692ffb1461c7e10d3ad71 Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 17 Jan 2020 13:38:51 -0600 Subject: [PATCH] favgroups: optimize favgroup: search metatag. The previous method resulted in a `WHERE posts.id IN ()` clause, which turned into a huge list when the favgroup had a lot of posts. --- app/logical/post_query_builder.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index c2b5fdc7f..9ca5153c9 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -451,11 +451,11 @@ class PostQueryBuilder end q[:favgroups_neg].to_a.each do |favgroup| - relation = relation.where.not("posts.id": favgroup.post_ids) + relation = relation.where.not(id: FavoriteGroup.where(id: favgroup.id).select("unnest(post_ids)")) end q[:favgroups].to_a.each do |favgroup| - relation = relation.where("posts.id": favgroup.post_ids) + relation = relation.where(id: FavoriteGroup.where(id: favgroup.id).select("unnest(post_ids)")) end if q[:upvote].present?