From af6f6d49575e2895b91c07ce762cf0834226d8a4 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 10 Jul 2020 00:22:26 +0200 Subject: [PATCH] Fix speed issues with the network page --- src/Content/Item.php | 23 ++++++++++++++++++----- src/Model/Item.php | 6 ++---- static/dbstructure.config.php | 3 ++- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Content/Item.php b/src/Content/Item.php index 40deb976c7..f39a8fa19d 100644 --- a/src/Content/Item.php +++ b/src/Content/Item.php @@ -168,10 +168,17 @@ class Item $contact = DBA::selectFirst('contact', $fields, ['id' => $tagcid, 'uid' => $profile_uid]); } - // select someone by nick or attag in the current network + // select someone by nick in the current network if (!DBA::isResult($contact) && ($network != '')) { - $condition = ["(`nick` = ? OR `attag` = ?) AND `network` = ? AND `uid` = ?", - $name, $name, $network, $profile_uid]; + $condition = ["`nick` = ? AND `network` = ? AND `uid` = ?", + $name, $network, $profile_uid]; + $contact = DBA::selectFirst('contact', $fields, $condition); + } + + // select someone by attag in the current network + if (!DBA::isResult($contact) && ($network != '')) { + $condition = ["`attag` = ? AND `network` = ? AND `uid` = ?", + $name, $network, $profile_uid]; $contact = DBA::selectFirst('contact', $fields, $condition); } @@ -181,9 +188,15 @@ class Item $contact = DBA::selectFirst('contact', $fields, $condition); } - // select someone by nick or attag in any network + // select someone by nick in any network if (!DBA::isResult($contact)) { - $condition = ["(`nick` = ? OR `attag` = ?) AND `uid` = ?", $name, $name, $profile_uid]; + $condition = ["`nick` = ? AND `uid` = ?", $name, $profile_uid]; + $contact = DBA::selectFirst('contact', $fields, $condition); + } + + // select someone by attag in any network + if (!DBA::isResult($contact)) { + $condition = ["`attag` = ? AND `uid` = ?", $name, $profile_uid]; $contact = DBA::selectFirst('contact', $fields, $condition); } diff --git a/src/Model/Item.php b/src/Model/Item.php index 0872db3ca5..4fff365562 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -1838,7 +1838,7 @@ class Item if (!Tag::existsForPost($item['uri-id'])) { Tag::storeFromBody($item['uri-id'], $body); } - + $ret = DBA::insert('item', $item); // When the item was successfully stored we fetch the ID of the item. @@ -2022,9 +2022,7 @@ class Item } if (empty($fields)) { - // when there are no fields at all, just use the condition - // This is to ensure that we always store content. - $fields = $condition; + return; } DBA::update('item-content', $fields, $condition, true); diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php index f1b5dbaecf..bab158d036 100755 --- a/static/dbstructure.config.php +++ b/static/dbstructure.config.php @@ -54,7 +54,7 @@ use Friendica\Database\DBA; if (!defined('DB_UPDATE_VERSION')) { - define('DB_UPDATE_VERSION', 1354); + define('DB_UPDATE_VERSION', 1355); } return [ @@ -195,6 +195,7 @@ return [ "addr_uid" => ["addr(32)", "uid"], "nurl_uid" => ["nurl(32)", "uid"], "nick_uid" => ["nick(32)", "uid"], + "attag_uid" => ["attag(32)", "uid"], "dfrn-id" => ["dfrn-id(64)"], "issued-id" => ["issued-id(64)"], "gsid" => ["gsid"]