1 defmodule Pleroma.Repo.Migrations.UpdateStatusReplyCount do
4 @public "https://www.w3.org/ns/activitystreams#Public"
9 SELECT count(*) AS count, data->>'inReplyTo' AS ap_id
12 data->>'inReplyTo' IS NOT NULL AND
13 data->>'type' = 'Note' AND (
14 data->'cc' ? '#{@public}' OR
15 data->'to' ? '#{@public}')
16 GROUP BY data->>'inReplyTo'
19 SET "data" = jsonb_set(o.data, '{repliesCount}', reply_count.count::varchar::jsonb, true)
21 WHERE reply_count.ap_id = o.data->>'id';
25 WITH reply_count AS (SELECT
27 data->'object'->>'inReplyTo' AS ap_id
31 data->'object'->>'inReplyTo' IS NOT NULL AND
32 data->'object'->>'type' = 'Note' AND (
33 data->'object'->'cc' ? '#{@public}' OR
34 data->'object'->'to' ? '#{@public}')
36 data->'object'->>'inReplyTo'
38 UPDATE activities AS a
39 SET "data" = jsonb_set(a.data, '{object, repliesCount}', reply_count.count::varchar::jsonb, true)
41 WHERE reply_count.ap_id = a.data->'object'->>'id';