PERF: topic_view participant post count: don't send back ID list (#10210)

On large topics, the cost of sending the entire post ID list back over to the database is signficant. Just have the DB recalculate the list of visible posts instead.
This commit is contained in:
Kane York
2020-07-13 18:42:09 -07:00
committed by GitHub
parent ab77707c1e
commit 8ddd45d524
3 changed files with 13 additions and 6 deletions

View File

@@ -287,7 +287,7 @@ describe TopicView do
it 'returns the two posters with their appropriate counts' do
Fabricate(:post, topic: topic, user: evil_trout, post_type: Post.types[:whisper])
expect(topic_view.post_counts_by_user.to_a).to match_array([[first_poster.id, 2], [evil_trout.id, 2]])
expect(TopicView.new(topic.id, admin).post_counts_by_user.to_a).to match_array([[first_poster.id, 2], [evil_trout.id, 2]])
expect(TopicView.new(topic.id, first_poster).post_counts_by_user.to_a).to match_array([[first_poster.id, 2], [evil_trout.id, 1]])
end