diff options
author | lain <lain@soykaf.club> | 2018-03-26 10:31:22 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2018-03-26 10:31:22 +0200 |
commit | bd4926288e6b5d8d3e4439d83e30fa0211045d0b (patch) | |
tree | c7b036409e92ce468fa44cb7a594c5313b0075fa | |
parent | 1d1271ca1e8a8d1fe6322442d39a8b6fa57a0a7a (diff) | |
download | pleroma-bd4926288e6b5d8d3e4439d83e30fa0211045d0b.tar.gz pleroma-bd4926288e6b5d8d3e4439d83e30fa0211045d0b.zip |
Speed up follower query.
-rw-r--r-- | lib/pleroma/user.ex | 2 | ||||
-rw-r--r-- | priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index e92b85f52..0594afb38 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -265,7 +265,7 @@ defmodule Pleroma.User do def get_followers(%User{id: id, follower_address: follower_address}) do q = from u in User, - where: ^follower_address in u.following, + where: fragment("? <@ ?", ^[follower_address], u.following), where: u.id != ^id {:ok, Repo.all(q)} diff --git a/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs b/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs index dbf9599b0..234d33735 100644 --- a/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs +++ b/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs @@ -4,5 +4,6 @@ defmodule Pleroma.Repo.Migrations.AddFollowerAddressIndexToUsers do @disable_ddl_transaction true def change do create index(:users, [:follower_address], concurrently: true) + create index(:users, [:following], concurrently: true, using: :gin) end end |