From b6328863ada4100b73679694c5491f10183e1d98 Mon Sep 17 00:00:00 2001 From: Tony Levi Date: Fri, 6 Jan 2012 15:56:45 +1030 Subject: [PATCH] MDL-26037: restore/import: check through all courses instead of only first 250 --- backup/util/ui/restore_ui_components.php | 30 ++++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/backup/util/ui/restore_ui_components.php b/backup/util/ui/restore_ui_components.php index adae38a6474..744fafcbc56 100644 --- a/backup/util/ui/restore_ui_components.php +++ b/backup/util/ui/restore_ui_components.php @@ -164,22 +164,26 @@ abstract class restore_search_base implements renderable { $this->totalcount = 0; $contextlevel = $this->get_itemcontextlevel(); list($sql, $params) = $this->get_searchsql(); - $resultset = $DB->get_recordset_sql($sql, $params, 0, 250); - foreach ($resultset as $result) { - context_instance_preload($result); - $context = get_context_instance($contextlevel, $result->id); - if (count($this->requiredcapabilities) > 0) { - foreach ($this->requiredcapabilities as $cap) { - if (!has_capability($cap['capability'], $context, $cap['user'])) { - continue 2; + $blocksz = 5000; + $offs = 0; + while ($resultset = $DB->get_records_sql($sql, $params, $offs, $blocksz)){ + foreach ($resultset as $result) { + context_instance_preload($result); + $context = get_context_instance($contextlevel, $result->id); + if (count($this->requiredcapabilities) > 0) { + foreach ($this->requiredcapabilities as $cap) { + if (!has_capability($cap['capability'], $context, $cap['user'])) { + continue 2; + } } } + $this->results[$result->id] = $result; + $this->totalcount++; + if ($this->totalcount >= self::$MAXRESULTS) { + break 2; + } } - $this->results[$result->id] = $result; - $this->totalcount++; - if ($this->totalcount >= self::$MAXRESULTS) { - break; - } + $offs += $blocksz; } return $this->totalcount;