Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-50144

Reduce number of queries in block_quiz_results restore

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Minor Minor
    • None
    • 2.9
    • Quiz
    • MOODLE_29_STABLE

      Noticed when reviewing MDL-50047.

      Upgrade code (mostly good):
      blocks/quiz_results/db/upgrade.php

      $records = get_records('block_instances');
      foreach ($records as $record) {
          if (!empty($record->configdata)) {
              $config = unserialize(base64_decode($record->configdata));
       
              // ...
       
          }
       
          $record->configdata = base64_encode(serialize($config));
          $record->blockname = 'activity_results';
          $DB->update_record('block_instances', $record);
      }
      

      Restore code (less good):
      blocks/quiz_results/backup/moodle2/restore_quiz_results_block_task.class.php

      $configdata = $DB->get_field('block_instances', 'configdata', array('id' => $blockid));
      if (!empty($configdata)) {
          $config = unserialize(base64_decode($record->configdata));
      }
       
      $DB->set_field('block_instances', 'configdata', $newconfigdata, array('id' => $blockid));
      $DB->set_field('block_instances', 'blockname', 'activity_results', array('id' => $blockid));
      

      So a few issues in the above:

      1. get_field + 2 x set_field; instead of get_record + update_record in Restore;
      2. Updating configdata on the record regardless of whether it's been changed.

      As I say, these are both minor things so no rush, but would reduce DB queries on restore (always a good thing) and unnecessary serialize + base64_encode.

            lucaboesch Luca Bösch
            dobedobedoh Andrew Lyons
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.