From 73eaccf60aaeeaeee7da5937942e3677e5a553c0 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Sun, 22 Jan 2012 14:54:43 +0100 Subject: [PATCH] MDL-31081 limit query to one course in forum_get_subscribed_forums() This improves performance on the forum index page. Credit goes to Mark Nielsen. --- mod/forum/lib.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index b32e281eca7..0fde3622718 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -4543,9 +4543,10 @@ function forum_get_subscribed_forums($course) { $sql = "SELECT f.id FROM {forum} f LEFT JOIN {forum_subscriptions} fs ON (fs.forum = f.id AND fs.userid = ?) - WHERE f.forcesubscribe <> ".FORUM_DISALLOWSUBSCRIBE." + WHERE f.course = ? + AND f.forcesubscribe <> ".FORUM_DISALLOWSUBSCRIBE." AND (f.forcesubscribe = ".FORUM_FORCESUBSCRIBE." OR fs.id IS NOT NULL)"; - if ($subscribed = $DB->get_records_sql($sql, array($USER->id))) { + if ($subscribed = $DB->get_records_sql($sql, array($USER->id, $course->id))) { foreach ($subscribed as $s) { $subscribed[$s->id] = $s->id; }