Deduplicate unique accounts and limit account array in descendants CTE

Limit unique accounts to check blocks from to 30 unique accounts (any new
participant will have its blocks ignored for the purpose of displaying the
posts). This is extremely unlikely to be reached in a legitimate situation,
but would limit wasteful computation in specially-crafted threads with many
participants.
This commit is contained in:
Claire 2022-05-24 18:56:26 +02:00
parent eee4eee7f0
commit 4ef608da0c

View file

@ -84,7 +84,11 @@ module Status::ThreadingConcern
UNION ALL
SELECT
statuses.id, path || statuses.id, authors || statuses.account_id
statuses.id, path || statuses.id, (CASE
WHEN array_length(authors, 1) >= 30 THEN authors
WHEN statuses.account_id = ANY(authors) THEN authors
ELSE authors || statuses.account_id
END)
FROM
search_tree
JOIN