From 0318b526f960f769fa4d5e465fef50faa4f593f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Massart?= Date: Tue, 1 May 2018 16:45:39 +0800 Subject: [PATCH] MDL-62167 core_badges: Prevent SQL error with Oracle --- badges/classes/privacy/provider.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/badges/classes/privacy/provider.php b/badges/classes/privacy/provider.php index 42c6e9d06e4c3..6dc72afd41730 100644 --- a/badges/classes/privacy/provider.php +++ b/badges/classes/privacy/provider.php @@ -205,23 +205,23 @@ public static function export_user_data(approved_contextlist $contextlist) { $params = []; if (!empty($contexts[CONTEXT_SYSTEM])) { - $sqls[] = "type = :typesite"; + $sqls[] = "b.type = :typesite"; $params['typesite'] = BADGE_TYPE_SITE; } if (!empty($contexts[CONTEXT_COURSE])) { list($insql, $inparams) = $DB->get_in_or_equal($contexts[CONTEXT_COURSE], SQL_PARAMS_NAMED); - $sqls[] = "(type = :typecourse AND courseid $insql)"; + $sqls[] = "(b.type = :typecourse AND b.courseid $insql)"; $params = array_merge($params, ['typecourse' => BADGE_TYPE_COURSE], $inparams); } $sqlwhere = '(' . implode(' OR ', $sqls) . ')'; $sql = " - SELECT *, COALESCE(courseid, 0) AS normalisedcourseid - FROM {badge} - WHERE (usermodified = :userid1 OR usercreated = :userid2) + SELECT b.*, COALESCE(b.courseid, 0) AS normalisedcourseid + FROM {badge} b + WHERE (b.usermodified = :userid1 OR b.usercreated = :userid2) AND $sqlwhere - ORDER BY courseid, id"; + ORDER BY b.courseid, b.id"; $params = array_merge($params, ['userid1' => $userid, 'userid2' => $userid]); $recordset = $DB->get_recordset_sql($sql, $params); static::recordset_loop_and_export($recordset, 'normalisedcourseid', [], function($carry, $record) use ($userid) {