aboutsummaryrefslogtreecommitdiffstats
path: root/mod/channel.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-02-12 17:45:25 -0800
committerfriendica <info@friendica.com>2015-02-12 17:45:25 -0800
commitda2349bb6a85d13f0aa29046bef3021cf0c884ba (patch)
treec6746dacc91a9f073bca67869074cc81825964df /mod/channel.php
parent94a9aa9610647935a10ba6d4d8f70c955a9d7243 (diff)
downloadvolse-hubzilla-da2349bb6a85d13f0aa29046bef3021cf0c884ba.tar.gz
volse-hubzilla-da2349bb6a85d13f0aa29046bef3021cf0c884ba.tar.bz2
volse-hubzilla-da2349bb6a85d13f0aa29046bef3021cf0c884ba.zip
provide relief to sites that are severely impacted by the slow ITEM_UNSEEN searches. This does not incorporate any other flag optimisations as that will require a major DB update and possibly involve significant downtime. This is just to bite off a little chunk now and provide some much needed relief.
Diffstat (limited to 'mod/channel.php')
-rw-r--r--mod/channel.php14
1 files changed, 5 insertions, 9 deletions
diff --git a/mod/channel.php b/mod/channel.php
index 1a471718d..788bacf70 100644
--- a/mod/channel.php
+++ b/mod/channel.php
@@ -147,23 +147,21 @@ function channel_content(&$a, $update = 0, $load = false) {
if(($update) && (! $load)) {
if ($mid) {
$r = q("SELECT parent AS item_id from item where mid = '%s' and uid = %d AND item_restrict = 0
- AND (item_flags & %d) > 0 AND (item_flags & %d) > 0 $sql_extra limit 1",
+ AND (item_flags & %d) > 0 AND item_unseen = 1 $sql_extra limit 1",
dbesc($mid),
intval($a->profile['profile_uid']),
- intval(ITEM_WALL),
- intval(ITEM_UNSEEN)
+ intval(ITEM_WALL)
);
} else {
$r = q("SELECT distinct parent AS `item_id`, created from item
left join abook on item.author_xchan = abook.abook_xchan
WHERE uid = %d AND item_restrict = 0
- AND (item_flags & %d) > 0 AND ( item_flags & %d ) > 0
+ AND (item_flags & %d) > 0 AND item_unseen = 1
AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
$sql_extra
ORDER BY created DESC",
intval($a->profile['profile_uid']),
intval(ITEM_WALL),
- intval(ITEM_UNSEEN),
intval(ABOOK_FLAG_BLOCKED)
);
}
@@ -317,10 +315,8 @@ function channel_content(&$a, $update = 0, $load = false) {
}
if($is_owner && $update_unseen) {
- $r = q("UPDATE item SET item_flags = (item_flags & ~%d)
- WHERE (item_flags & %d) > 0 AND (item_flags & %d) > 0 AND uid = %d $update_unseen",
- intval(ITEM_UNSEEN),
- intval(ITEM_UNSEEN),
+ $r = q("UPDATE item SET item_unseen = 0 WHERE item_unseen = 1
+ AND (item_flags & %d) > 0 AND uid = %d $update_unseen",
intval(ITEM_WALL),
intval(local_channel())
);