Wrap the followed ap_ids subselect in keep_following_or_not_domain_blocked in ARRAY(...) so it becomes an InitPlan. As a plain subselect the planner charged its startup per rescan of the actor lookup, which could make Notification.for_user pick a plan that scans every active user per row.
1 line
221 B
Text
1 line
221 B
Text
Fix notification and timeline queries for users with domain blocks choosing a plan that scans every active user per row; the followed-accounts exception is now an `ARRAY(SELECT ...)` InitPlan that the planner costs once.
|