+function buildBlockedAccountSQLOptimized (columnNameJoin: string, blockerIds: number[]) {
+ const blockerIdsString = blockerIds.join(', ')
+
+ return [
+ literal(
+ `NOT EXISTS (` +
+ ` SELECT 1 FROM "accountBlocklist" ` +
+ ` WHERE "targetAccountId" = ${columnNameJoin} ` +
+ ` AND "accountId" IN (${blockerIdsString})` +
+ `)`
+ ),
+
+ literal(
+ `NOT EXISTS (` +
+ ` SELECT 1 FROM "account" ` +
+ ` INNER JOIN "actor" ON account."actorId" = actor.id ` +
+ ` INNER JOIN "serverBlocklist" ON "actor"."serverId" = "serverBlocklist"."targetServerId" ` +
+ ` WHERE "account"."id" = ${columnNameJoin} ` +
+ ` AND "serverBlocklist"."accountId" IN (${blockerIdsString})` +
+ `)`
+ )
+ ]
+}
+