Improve SQL-Queries / fixed "fetch_parents" setting

This commit is contained in:
Michael 2022-08-08 20:00:21 +00:00
parent bbbbf8fd6b
commit 548b7f43a5
4 changed files with 8 additions and 8 deletions

View File

@ -345,7 +345,7 @@ class Processor
return [];
}
if (!in_array(0, $activity['receiver']) && !DI::config()->get('system', 'fetch_parents')) {
if (!in_array(0, $activity['receiver']) || !DI::config()->get('system', 'fetch_parents')) {
$fetch_parents = false;
}

View File

@ -39,7 +39,7 @@ class RemoveUnusedAvatars
AND NOT `nurl` IN (SELECT `nurl` FROM `contact` WHERE `uid` != ?)
AND NOT `contact`.`id` IN (SELECT `author-id` FROM `post-user`)
AND NOT `contact`.`id` IN (SELECT `owner-id` FROM `post-user`)
AND NOT `contact`.`id` IN (SELECT `causer-id` FROM `post-user`)
AND NOT `contact`.`id` IN (SELECT `causer-id` FROM `post-user` WHERE `causer-id` IS NOT NULL)
AND NOT `contact`.`id` IN (SELECT `cid` FROM `post-tag`)
AND NOT `contact`.`id` IN (SELECT `contact-id` FROM `post-user`);";

View File

@ -40,7 +40,7 @@ class RemoveUnusedContacts
$condition = ["`id` != ? AND `uid` = ? AND NOT `self` AND NOT `nurl` IN (SELECT `nurl` FROM `contact` WHERE `uid` != ?)
AND (NOT `network` IN (?, ?, ?, ?, ?, ?) OR (`archive` AND `success_update` < ?))
AND NOT `id` IN (SELECT `author-id` FROM `post-user`) AND NOT `id` IN (SELECT `owner-id` FROM `post-user`)
AND NOT `id` IN (SELECT `causer-id` FROM `post-user`) AND NOT `id` IN (SELECT `cid` FROM `post-tag`)
AND NOT `id` IN (SELECT `causer-id` FROM `post-user` WHERE `causer-id` IS NOT NULL) AND NOT `id` IN (SELECT `cid` FROM `post-tag`)
AND NOT `id` IN (SELECT `contact-id` FROM `post-user`) AND NOT `id` IN (SELECT `cid` FROM `user-contact`)
AND NOT `id` IN (SELECT `cid` FROM `event`) AND NOT `id` IN (SELECT `contact-id` FROM `group_member`)
AND `created` < ?",

View File

@ -55,11 +55,11 @@ class UpdateContacts
$ids = self::getContactsToUpdate($condition, $limit, []);
Logger::info('Fetched federated user contacts', ['count' => count($ids)]);
$conditions = ["`id` IN (SELECT `author-id` FROM `post` WHERE `author-id` = `contact`.`id`)",
"`id` IN (SELECT `owner-id` FROM `post` WHERE `owner-id` = `contact`.`id`)",
"`id` IN (SELECT `causer-id` FROM `post` WHERE `causer-id` = `contact`.`id`)",
"`id` IN (SELECT `cid` FROM `post-tag` WHERE `cid` = `contact`.`id`)",
"`id` IN (SELECT `cid` FROM `user-contact` WHERE `cid` = `contact`.`id`)"];
$conditions = ["`id` IN (SELECT `author-id` FROM `post`)",
"`id` IN (SELECT `owner-id` FROM `post`)",
"`id` IN (SELECT `causer-id` FROM `post` WHERE NOT `causer-id` IS NULL)",
"`id` IN (SELECT `cid` FROM `post-tag`)",
"`id` IN (SELECT `cid` FROM `user-contact`)"];
foreach ($conditions as $contact_condition) {
$condition = DBA::mergeConditions($base_condition,