mirror of
https://github.com/moodle/moodle.git
synced 2025-04-15 13:33:52 +02:00
MDL-52334 enrol_database: Add missing filter to user_enrolment lookup
Without the user filter, the left join to the user enrolment table results in a much larger set of data being returned than before MDL-28420. Which makes login time for users in many busy courses much worse than before (3x worse on average, observed upto 40x).
This commit is contained in:
parent
ea5c18dfce
commit
6c9b6685de
@ -264,9 +264,9 @@ class enrol_database_plugin extends enrol_plugin {
|
||||
FROM {enrol} e
|
||||
JOIN {course} c ON c.id = e.courseid
|
||||
JOIN {role_assignments} ra ON ra.itemid = e.id
|
||||
LEFT JOIN {user_enrolments} ue ON ue.enrolid = e.id
|
||||
LEFT JOIN {user_enrolments} ue ON ue.enrolid = e.id AND ue.userid = ra.userid
|
||||
WHERE ra.userid = :userid AND e.enrol = 'database'";
|
||||
$rs = $DB->get_recordset_sql($sql, array('userid'=>$user->id));
|
||||
$rs = $DB->get_recordset_sql($sql, array('userid' => $user->id));
|
||||
foreach ($rs as $instance) {
|
||||
if (!$instance->cvisible and $ignorehidden) {
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user