Use more efficient user note count update query.
This commit is contained in:
parent
29c261e75b
commit
9af560083f
2 changed files with 10 additions and 1 deletions
|
@ -241,7 +241,7 @@ def get_friends(%User{id: id, following: following}) do
|
|||
|
||||
def update_note_count(%User{} = user) do
|
||||
note_count_query = from a in Object,
|
||||
where: fragment("? @> ?", a.data, ^%{actor: user.ap_id, type: "Note"}),
|
||||
where: fragment("?->>'actor' = ? and ?->>'type' = 'Note'", a.data, ^user.ap_id, a.data),
|
||||
select: count(a.id)
|
||||
|
||||
note_count = Repo.one(note_count_query)
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
defmodule Pleroma.Repo.Migrations.AddObjectActorIndex do
|
||||
use Ecto.Migration
|
||||
|
||||
@disable_ddl_transaction true
|
||||
|
||||
def change do
|
||||
create index(:objects, ["(data->>'actor')", "(data->>'type')"], concurrently: true, name: :objects_actor_type)
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue