MDL-46826 forum: make sql query indexed, regression from MDL-31089
This commit is contained in:
+6
-5
@@ -1438,12 +1438,12 @@ function forum_print_overview($courses,&$htmlarray) {
|
||||
|
||||
// If the user has never entered into the course all posts are pending
|
||||
if ($course->lastaccess == 0) {
|
||||
$coursessqls[] = '(d.course = ?)';
|
||||
$coursessqls[] = '(f.course = ?)';
|
||||
$params[] = $course->id;
|
||||
|
||||
// Only posts created after the course last access
|
||||
} else {
|
||||
$coursessqls[] = '(d.course = ? AND p.created > ?)';
|
||||
$coursessqls[] = '(f.course = ? AND p.created > ?)';
|
||||
$params[] = $course->id;
|
||||
$params[] = $course->lastaccess;
|
||||
}
|
||||
@@ -1451,12 +1451,13 @@ function forum_print_overview($courses,&$htmlarray) {
|
||||
$params[] = $USER->id;
|
||||
$coursessql = implode(' OR ', $coursessqls);
|
||||
|
||||
$sql = "SELECT d.id, d.forum, d.course, d.groupid, COUNT(*) as count "
|
||||
.'FROM {forum_discussions} d '
|
||||
$sql = "SELECT d.id, d.forum, f.course, d.groupid, COUNT(*) as count "
|
||||
.'FROM {forum} f '
|
||||
.'JOIN {forum_discussions} d ON d.forum = f.id '
|
||||
.'JOIN {forum_posts} p ON p.discussion = d.id '
|
||||
."WHERE ($coursessql) "
|
||||
.'AND p.userid != ? '
|
||||
.'GROUP BY d.id, d.forum, d.course, d.groupid';
|
||||
.'GROUP BY d.id, d.forum, f.course, d.groupid';
|
||||
|
||||
// Avoid warnings.
|
||||
if (!$discussions = $DB->get_records_sql($sql, $params)) {
|
||||
|
||||
Reference in New Issue
Block a user