logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: caae83e6d54caaac1790a727b902e70adffd296f
parent: f3a71f2986fc0787c03bec786e772353e99ae9f9
Author: lambda <pleromagit@rogerbraun.net>
Date:   Fri, 25 May 2018 07:13:05 +0000

Merge branch 'bugfix/follow-query-overhead' into 'develop'

activitypub utils: optimize block and follow activity lookup

See merge request pleroma/pleroma!171

Diffstat:

Mlib/pleroma/web/activity_pub/utils.ex18++++++++++++++----
Mtest/web/common_api/common_api_test.exs2+-
2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex @@ -240,11 +240,16 @@ defmodule Pleroma.Web.ActivityPub.Utils do activity in Activity, where: fragment( + "? ->> 'type' = 'Follow'", + activity.data + ), + where: activity.actor == ^follower_id, + where: + fragment( "? @> ?", activity.data, - ^%{type: "Follow", object: followed_id} + ^%{object: followed_id} ), - where: activity.actor == ^follower_id, order_by: [desc: :id], limit: 1 ) @@ -365,11 +370,16 @@ defmodule Pleroma.Web.ActivityPub.Utils do activity in Activity, where: fragment( + "? ->> 'type' = 'Block'", + activity.data + ), + where: activity.actor == ^blocker_id, + where: + fragment( "? @> ?", activity.data, - ^%{type: "Block", object: blocked_id} + ^%{object: blocked_id} ), - where: activity.actor == ^blocker_id, order_by: [desc: :id], limit: 1 ) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs @@ -1,4 +1,4 @@ -defmodule Pleroma.Web.CommonAPI.UtilsTest do +defmodule Pleroma.Web.CommonAPI.Test do use Pleroma.DataCase alias Pleroma.Web.CommonAPI