From 90274c732976dab7894a67b8dac53e0153ac2f58 Mon Sep 17 00:00:00 2001
From: skodak <skodak>
Date: Thu, 9 Aug 2007 12:07:16 +0000
Subject: [PATCH] MDL-10757 adding some more table indexes for grades code

---
 lib/db/install.xml |  5 +++--
 lib/db/upgrade.php | 19 ++++++++++++++-----
 version.php        |  2 +-
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/lib/db/install.xml b/lib/db/install.xml
index e1fa267621..e4386e6ff2 100644
--- a/lib/db/install.xml
+++ b/lib/db/install.xml
@@ -1371,8 +1371,9 @@
       <INDEXES>
         <INDEX NAME="locktime" UNIQUE="false" FIELDS="locktime" COMMENT="locktime index" NEXT="locked"/>
         <INDEX NAME="locked" UNIQUE="false" FIELDS="locked" COMMENT="locked index" PREVIOUS="locktime" NEXT="itemtype"/>
-        <INDEX NAME="itemtype" UNIQUE="false" FIELDS="itemtype" COMMENT="itemtypeindex" PREVIOUS="locked" NEXT="needsupdate"/>
-        <INDEX NAME="needsupdate" UNIQUE="false" FIELDS="needsupdate" COMMENT="needsupdate index" PREVIOUS="itemtype"/>
+        <INDEX NAME="itemtype" UNIQUE="false" FIELDS="itemtype" COMMENT="itemtypeindex" PREVIOUS="locked" NEXT="itemtype-needsupdate"/>
+        <INDEX NAME="itemtype-needsupdate" UNIQUE="false" FIELDS="itemtype, needsupdate" COMMENT="used in grading cron" PREVIOUS="itemtype" NEXT="gradetype"/>
+        <INDEX NAME="gradetype" UNIQUE="false" FIELDS="gradetype" COMMENT="index for gradetype" PREVIOUS="itemtype-needsupdate"/>
       </INDEXES>
     </TABLE>
     <TABLE NAME="grade_grades" COMMENT="grade_grades  This table keeps individual grades for each user and each item, exactly as imported or submitted by modules. The rawgrademax/min and rawscaleid are stored here to record the values at the time the grade was stored, because teachers might change this for an activity! All the results are normalised/resampled for the final grade value." PREVIOUS="grade_items" NEXT="grade_grades_text">
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php
index 9edd1d77df..cb3aefb409 100644
--- a/lib/db/upgrade.php
+++ b/lib/db/upgrade.php
@@ -1129,7 +1129,8 @@ function xmldb_main_upgrade($oldversion=0) {
         $table->addIndexInfo('locktime', XMLDB_INDEX_NOTUNIQUE, array('locktime'));
         $table->addIndexInfo('locked', XMLDB_INDEX_NOTUNIQUE, array('locked'));
         $table->addIndexInfo('itemtype', XMLDB_INDEX_NOTUNIQUE, array('itemtype'));
-        $table->addIndexInfo('needsupdate', XMLDB_INDEX_NOTUNIQUE, array('needsupdate'));
+        $table->addIndexInfo('itemtype-needsupdate', XMLDB_INDEX_NOTUNIQUE, array('itemtype', 'needsupdate'));
+        $table->addIndexInfo('gradetype', XMLDB_INDEX_NOTUNIQUE, array('gradetype'));
 
     /// Launch create table for grade_items
         $result = $result && create_table($table);
@@ -1662,7 +1663,7 @@ function xmldb_main_upgrade($oldversion=0) {
         $result = $result && add_field($table, $field);
     }
 
-    if ($result && $oldversion < 2007080901) {
+    if ($result && $oldversion < 2007080902) {
     /// Define index
         $table = new XMLDBTable('grade_grades');
         $index = new XMLDBIndex('locktime');
@@ -1713,17 +1714,25 @@ function xmldb_main_upgrade($oldversion=0) {
             $result = $result && add_index($table, $index);
         }
 
+    /// Define index itemtype-needsupdate (not unique) to be added to grade_items
+        $table = new XMLDBTable('grade_items');
+        $index = new XMLDBIndex('itemtype-needsupdate');
+        $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('itemtype', 'needsupdate'));
+        if (!index_exists($table, $index)) {
+        /// Launch add index itemtype-needsupdate
+            $result = $result && add_index($table, $index);
+        }
+
     /// Define index
         $table = new XMLDBTable('grade_items');
-        $index = new XMLDBIndex('needsupdate');
-        $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('needsupdate'));
+        $index = new XMLDBIndex('gradetype');
+        $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('gradetype'));
 
         if (!index_exists($table, $index)) {
         /// Launch add index
             $result = $result && add_index($table, $index);
         }
 
-
     }
 
 /*
diff --git a/version.php b/version.php
index bb7b31198b..deba7a5c38 100644
--- a/version.php
+++ b/version.php
@@ -6,7 +6,7 @@
 // This is compared against the values stored in the database to determine
 // whether upgrades should be performed (see lib/db/*.php)
 
-    $version = 2007080901;  // YYYYMMDD = date
+    $version = 2007080902;  // YYYYMMDD = date
                             //       XY = increments within a single day
 
     $release = '1.9 dev';   // Human-friendly version name
-- 
2.39.5