From 7aaf91a620cff8303d3052f1beb973d43d670431 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 5 Jan 2017 13:16:27 +0000 Subject: [PATCH] Removing and adding some indexes --- include/dbstructure.php | 4 +--- include/redir.php | 14 +++++++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/include/dbstructure.php b/include/dbstructure.php index 238fd1f360..f7f44fd605 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -589,10 +589,8 @@ function db_definition($charset) { "uid" => array("uid"), "uid_self" => array("uid", "self"), "uid_network_batch_archive" => array("uid", "network", "batch(64)", "archive"), - "uid_network" => array("uid", "network"), "addr_uid" => array("addr(32)", "uid"), "nurl_uid" => array("nurl(32)", "uid"), - "url_uid" => array("url(32)", "uid"), "nick_uid" => array("nick(32)", "uid"), ) ); @@ -1022,7 +1020,7 @@ function db_definition($charset) { // "guid" => array("guid"), "convid" => array("convid"), // "reply" => array("reply"), - "uri" => array("uri"), + "uri" => array("uri(64)"), "parent-uri" => array("parent-uri(64)"), ) ); diff --git a/include/redir.php b/include/redir.php index d8bb764396..bbe8a11ec4 100644 --- a/include/redir.php +++ b/include/redir.php @@ -27,13 +27,13 @@ function auto_redir(&$a, $contact_nick) { $baseurl = substr($baseurl, $domain_st + 3); $nurl = normalise_link($baseurl); - - $r = q("SELECT id FROM contact WHERE uid = ( SELECT uid FROM user WHERE nickname = '%s' LIMIT 1 ) - AND nick = '%s' AND self = 0 AND ( url LIKE '%%%s%%' or nurl LIKE '%%%s%%' ) AND blocked = 0 AND pending = 0 LIMIT 1", - dbesc($contact_nick), - dbesc($a->user['nickname']), - dbesc($baseurl), - dbesc($nurl) + /// @todo Why is there a query for "nurl" *and* "nurl"? Especially this normalising is strange. + $r = q("SELECT `id` FROM `contact` WHERE `uid` = (SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1) + AND `nick` = '%s' AND NOT `self` AND (`url` LIKE '%%%s%%' OR `nurl` LIKE '%%%s%%') AND NOT `blocked` AND NOT `pending` LIMIT 1", + dbesc($contact_nick), + dbesc($a->user['nickname']), + dbesc($baseurl), + dbesc($nurl) ); if ((! dbm::is_result($r)) || $r[0]['id'] == remote_user()) {