diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-10-31 16:37:11 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-10-31 16:37:11 +0100 |
commit | 4dcbb64f19723334a9ef66b4ce71856d30e32796 (patch) | |
tree | 6a4bc599c164861108a40cc1933ed4c0f953c1c7 /test | |
parent | 3037814fde83d869f7a71567511a6aa5e0700073 (diff) | |
download | pleroma-4dcbb64f19723334a9ef66b4ce71856d30e32796.tar.gz pleroma-4dcbb64f19723334a9ef66b4ce71856d30e32796.zip |
Avoid potentially slow count queries for user note count.
For a variety of reasons, posgresql won't use the available actor,
type index to do an index only scan. We now just increase the user
note count, which will lead to slightly wrong counts in some cases,
but it's better than the potentially very slow count query.
Diffstat (limited to 'test')
-rw-r--r-- | test/user_test.exs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/user_test.exs b/test/user_test.exs index 097d7d98e..ae9a48e74 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -246,6 +246,21 @@ defmodule Pleroma.UserTest do assert user.info["note_count"] == 1 end + test "it increases the info->note_count property" do + note = insert(:note) + user = User.get_by_ap_id(note.data["actor"]) + + assert user.info["note_count"] == nil + + {:ok, user} = User.increase_note_count(user) + + assert user.info["note_count"] == 1 + + {:ok, user} = User.increase_note_count(user) + + assert user.info["note_count"] == 2 + end + test "it sets the info->follower_count property" do user = insert(:user) follower = insert(:user) |