MDL-50385 grades: Adding index to improve history search
authorEric Merrill <merrill@oakland.edu>
Thu, 11 Feb 2016 17:30:12 +0000 (12:30 -0500)
committerEric Merrill <merrill@oakland.edu>
Thu, 11 Feb 2016 17:30:12 +0000 (12:30 -0500)
lib/db/install.xml
lib/db/upgrade.php
version.php

index c8cda52..b29a3f8 100644 (file)
       <INDEXES>
         <INDEX NAME="action" UNIQUE="false" FIELDS="action" COMMENT="insert/update/delete"/>
         <INDEX NAME="timemodified" UNIQUE="false" FIELDS="timemodified"/>
+        <INDEX NAME="userid-itemid-timemodified" UNIQUE="false" FIELDS="userid, itemid, timemodified" COMMENT="Improve history searching"/>
       </INDEXES>
     </TABLE>
     <TABLE NAME="grade_import_newitem" COMMENT="temporary table for storing new grade_item names from grade import">
index 7e6ca5c..c6be33c 100644 (file)
@@ -4916,5 +4916,22 @@ function xmldb_main_upgrade($oldversion) {
         upgrade_main_savepoint(true, 2016020201.00);
     }
 
+    if ($oldversion < 2016021100.01) {
+        // This could take a long time. Unfortunately, no way to know how long, and no way to do progress, so setting for 1 hour.
+        upgrade_set_timeout(3600);
+
+        // Define index userid-itemid (not unique) to be added to grade_grades_history.
+        $table = new xmldb_table('grade_grades_history');
+        $index = new xmldb_index('userid-itemid-timemodified', XMLDB_INDEX_NOTUNIQUE, array('userid', 'itemid', 'timemodified'));
+
+        // Conditionally launch add index userid-itemid.
+        if (!$dbman->index_exists($table, $index)) {
+            $dbman->add_index($table, $index);
+        }
+
+        // Main savepoint reached.
+        upgrade_main_savepoint(true, 2016021100.01);
+    }
+
     return true;
 }
index 6b769f9..366dc18 100644 (file)
@@ -29,7 +29,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$version  = 2016021100.00;              // YYYYMMDD      = weekly release date of this DEV branch.
+$version  = 2016021100.01;              // YYYYMMDD      = weekly release date of this DEV branch.
                                         //         RR    = release increments - 00 in DEV branches.
                                         //           .XX = incremental changes.