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)
--- /dev/null
+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