MDL-22179 backup - speed up decoder access by adding new index
authorEloy Lafuente <stronk7@moodle.org>
Tue, 27 Jul 2010 15:16:31 +0000 (15:16 +0000)
committerEloy Lafuente <stronk7@moodle.org>
Tue, 27 Jul 2010 15:16:31 +0000 (15:16 +0000)
lib/db/install.xml
lib/db/upgrade.php
version.php

index 74e398f..866d31a 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="lib/db" VERSION="20100721" COMMENT="XMLDB file for core Moodle tables"
+<XMLDB PATH="lib/db" VERSION="20100727" COMMENT="XMLDB file for core Moodle tables"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
 >
         <KEY NAME="backupid_itemname_itemid_uk" TYPE="unique" FIELDS="backupid, itemname, itemid" PREVIOUS="primary"/>
       </KEYS>
       <INDEXES>
-        <INDEX NAME="backupid_parentitemid_ix" UNIQUE="false" FIELDS="backupid, itemname, parentitemid"/>
+        <INDEX NAME="backupid_parentitemid_ix" UNIQUE="false" FIELDS="backupid, itemname, parentitemid" NEXT="backupid_itemname_newitemid_ix"/>
+        <INDEX NAME="backupid_itemname_newitemid_ix" UNIQUE="false" FIELDS="backupid, itemname, newitemid" PREVIOUS="backupid_parentitemid_ix"/>
       </INDEXES>
     </TABLE>
     <TABLE NAME="backup_files_template" COMMENT="To store files along the backup process. Note this table isn't really used but its temporary counterpart." PREVIOUS="backup_ids_template" NEXT="backup_logs">
index f949c10..8605579 100644 (file)
@@ -4878,6 +4878,21 @@ WHERE gradeitemid IS NOT NULL AND grademax IS NOT NULL");
         upgrade_main_savepoint(true, 2010072300);
     }
 
+    if ($oldversion < 2010072700) {
+
+        // Define index backupid_itemname_newitemid_ix (not unique) to be added to backup_ids_template
+        $table = new xmldb_table('backup_ids_template');
+        $index = new xmldb_index('backupid_itemname_newitemid_ix', XMLDB_INDEX_NOTUNIQUE, array('backupid', 'itemname', 'newitemid'));
+
+        // Conditionally launch add index backupid_itemname_newitemid_ix
+        if (!$dbman->index_exists($table, $index)) {
+            $dbman->add_index($table, $index);
+        }
+
+        // Main savepoint reached
+        upgrade_main_savepoint(true, 2010072700);
+    }
+
 
     return true;
 }
index e9b71f8..c067419 100644 (file)
@@ -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 = 2010072300;  // YYYYMMDD   = date of the last version bump
+    $version = 2010072700;  // YYYYMMDD   = date of the last version bump
                             //         XX = daily increments
 
     $release = '2.0 Preview 4+ (Build: 20100727)';  // Human-friendly version name