From b186d4c3212d05916a9c95c2eacbb530111d57c5 Mon Sep 17 00:00:00 2001 From: Terry Campbell Date: Tue, 20 Dec 2016 14:23:48 -0600 Subject: [PATCH] Incomplete join on query using copurse_modules caused excessive result size and errors. Code appeared to assume idnumber was unique. --- classes/moodle/synchronize.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/moodle/synchronize.php b/classes/moodle/synchronize.php index 75c8004..87a910f 100644 --- a/classes/moodle/synchronize.php +++ b/classes/moodle/synchronize.php @@ -400,7 +400,7 @@ public function get_grade_and_completion_elements($courseids = []) { JOIN {'.\pmclass::TABLE.'} cls ON cls.courseid = cmp.courseid JOIN {'.\classmoodlecourse::TABLE.'} cmc ON cmc.classid = cls.id AND cmc.moodlecourseid > 0 '.$courseidssql.' - LEFT JOIN {course_modules} crsmod ON crsmod.idnumber = cmp.idnumber + LEFT JOIN {course_modules} crsmod ON crsmod.idnumber = cmp.idnumber AND crsmod.course = cmc.moodlecourseid LEFT JOIN {grade_items} gi ON gi.courseid = cmc.moodlecourseid AND (gi.idnumber = cmp.idnumber OR gi.idnumber = crsmod.id)';