]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/CleanItemUri.php
More "item" traces removed
[friendica.git] / src / Worker / CleanItemUri.php
index d7a99153f69efaddc14427490ffb916ec968697d..8f74d99fb0767dec839eaa5e6c27a4917fd89dd1 100644 (file)
@@ -23,6 +23,7 @@ namespace Friendica\Worker;
 
 use Friendica\Core\Logger;
 use Friendica\Database\DBA;
+use Friendica\Model\Post;
 
 class CleanItemUri
 {
@@ -33,7 +34,7 @@ class CleanItemUri
        {
                // We have to avoid deleting newly created "item-uri" entries.
                // So we fetch a post that had been stored yesterday and only delete older ones.
-               $item = DBA::selectFirst('item', ['uri-id'], ["`uid` = ? AND `received` < UTC_TIMESTAMP() - INTERVAL ? DAY", 0, 1],
+               $item = Post::selectFirst(['uri-id'], ["`uid` = ? AND `received` < UTC_TIMESTAMP() - INTERVAL ? DAY", 0, 1],
                        ['order' => ['received' => true]]);
                if (empty($item['uri-id'])) {
                        Logger::warning('No item with uri-id found - we better quit here');
@@ -41,9 +42,10 @@ class CleanItemUri
                }
                Logger::notice('Start deleting orphaned URI-ID', ['last-id' => $item['uri-id']]);
                $ret = DBA::e("DELETE FROM `item-uri` WHERE `id` < ?
-                       AND NOT `id` IN (SELECT `uri-id` FROM `item`)
-                       AND NOT `id` IN (SELECT `parent-uri-id` FROM `item`)
-                       AND NOT `id` IN (SELECT `thr-parent-id` FROM `item`)", $item['uri-id']);
+                       AND NOT EXISTS(SELECT `uri-id` FROM `post-user` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `parent-uri-id` FROM `post-user` WHERE `parent-uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `thr-parent-id` FROM `post-user` WHERE `thr-parent-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `external-id` FROM `post-user` WHERE `external-id` = `item-uri`.`id`)", $item['uri-id']);
                Logger::notice('Orphaned URI-ID entries removed', ['result' => $ret, 'rows' => DBA::affectedRows()]);
        }
 }