From 4a6aa192a07da57b1e167166aab3458cdbbdd22f Mon Sep 17 00:00:00 2001 From: Sara Arjona Date: Fri, 11 May 2018 12:59:19 +0200 Subject: [PATCH] MDL-61951 core_grading: Review SQL to avoid Oracle errors --- grade/grading/classes/privacy/provider.php | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/grade/grading/classes/privacy/provider.php b/grade/grading/classes/privacy/provider.php index 73f632f6a0f..490cc791dd2 100644 --- a/grade/grading/classes/privacy/provider.php +++ b/grade/grading/classes/privacy/provider.php @@ -160,18 +160,22 @@ class provider implements $params['raterid'] = $userid; } - $sql = "SELECT DISTINCT d.id, - d.method, - d.name, - d.description, - d.timecopied, - d.timecreated, - d.usercreated, - d.timemodified, - d.usermodified - FROM {grading_definitions} d - $join - WHERE $select"; + $sql = "SELECT gd.id, + gd.method, + gd.name, + gd.description, + gd.timecopied, + gd.timecreated, + gd.usercreated, + gd.timemodified, + gd.usermodified + FROM ( + SELECT DISTINCT d.id + FROM {grading_definitions} d + $join + WHERE $select + ) ids + JOIN {grading_definitions} gd ON gd.id = ids.id"; $definitions = $DB->get_recordset_sql($sql, $params); $defdata = []; foreach ($definitions as $definition) {