From 2b1efa16da90798e3d295eab65c4b65b815e9ca3 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Sat, 27 Oct 2018 02:12:25 +1100 Subject: [PATCH] MDL-63785 profilefield_menu: performance improvement --- .../field/menu/classes/privacy/provider.php | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/user/profile/field/menu/classes/privacy/provider.php b/user/profile/field/menu/classes/privacy/provider.php index 6f7b8a4a898..2becd638823 100644 --- a/user/profile/field/menu/classes/privacy/provider.php +++ b/user/profile/field/menu/classes/privacy/provider.php @@ -95,22 +95,18 @@ class provider implements return; } - $params = [ - 'contextuser' => CONTEXT_USER, - 'contextid' => $context->id, - 'datatype' => 'menu' - ]; - - $sql = "SELECT ctx.instanceid as userid + $sql = "SELECT uda.userid FROM {user_info_data} uda JOIN {user_info_field} uif ON uda.fieldid = uif.id - JOIN {context} ctx - ON ctx.instanceid = uda.userid - AND ctx.contextlevel = :contextuser - WHERE ctx.id = :contextid + WHERE uda.userid = :userid AND uif.datatype = :datatype"; + $params = [ + 'userid' => $context->instanceid, + 'datatype' => 'menu' + ]; + $userlist->add_from_sql('userid', $sql, $params); }