diff --git a/database.sql b/database.sql index 2fd7625bee..e15d19ca7d 100644 --- a/database.sql +++ b/database.sql @@ -236,6 +236,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( INDEX `next-update` (`next-update`), INDEX `local-data-next-update` (`local-data`,`next-update`), INDEX `uid_lastitem` (`uid`,`last-item`), + INDEX `uid_created` (`uid`,`created`), INDEX `baseurl` (`baseurl`(64)), INDEX `uid_contact-type` (`uid`,`contact-type`), INDEX `uid_self_contact-type` (`uid`,`self`,`contact-type`), diff --git a/doc/en/spec/database/db-contact.md b/doc/en/spec/database/db-contact.md index c89eb41e41..de19114e7b 100644 --- a/doc/en/spec/database/db-contact.md +++ b/doc/en/spec/database/db-contact.md @@ -114,6 +114,7 @@ contact table | next-update | next-update | | local-data-next-update | local-data, next-update | | uid_lastitem | uid, last-item | +| uid_created | uid, created | | baseurl | baseurl(64) | | uid_contact-type | uid, contact-type | | uid_self_contact-type | uid, self, contact-type | diff --git a/src/Model/Item.php b/src/Model/Item.php index ba54a3e599..7cf86db706 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -403,7 +403,7 @@ class Item Post\DeliveryData::delete($item['uri-id']); // If it's the parent of a comment thread, kill all the kids - if ($item['gravity'] == self::GRAVITY_PARENT) { + if ($item['gravity'] == self::GRAVITY_PARENT && !is_null($item['parent'])) { self::markForDeletion(['parent' => $item['parent'], 'deleted' => false], $priority); } diff --git a/src/Module/Api/Mastodon/Directory.php b/src/Module/Api/Mastodon/Directory.php index b83341d00b..990da59bb0 100644 --- a/src/Module/Api/Mastodon/Directory.php +++ b/src/Module/Api/Mastodon/Directory.php @@ -42,8 +42,10 @@ class Directory extends BaseApi $condition = ['uid' => 0, 'hidden' => false, 'network' => Protocol::FEDERATED]; } - $params = ['limit' => [$request['offset'], $request['limit']], - 'order' => [($request['order'] == 'active') ? 'last-item' : 'created' => true]]; + $params = [ + 'limit' => [$request['offset'], $request['limit']], + 'order' => [($request['order'] == 'active') ? 'last-item' : 'created' => true] + ]; $accounts = []; $contacts = DBA::select($table, ['id', 'uid'], $condition, $params); diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php index 7a4aad4acd..f71c1d870b 100644 --- a/static/dbstructure.config.php +++ b/static/dbstructure.config.php @@ -285,6 +285,7 @@ return [ "next-update" => ["next-update"], "local-data-next-update" => ["local-data", "next-update"], "uid_lastitem" => ["uid", "last-item"], + "uid_created" => ["uid", "created"], "baseurl" => ["baseurl(64)"], "uid_contact-type" => ["uid", "contact-type"], "uid_self_contact-type" => ["uid", "self", "contact-type"],