]> git.mjollnir.org Git - moodle.git/commitdiff
merged fix for MDL-11909, putting a unique constraint userid-itemid on grade_grades...
authortoyomoyo <toyomoyo>
Thu, 8 Nov 2007 02:01:34 +0000 (02:01 +0000)
committertoyomoyo <toyomoyo>
Thu, 8 Nov 2007 02:01:34 +0000 (02:01 +0000)
lib/db/install.xml
lib/db/upgrade.php
version.php

index ddb0d817db4cbfafb39bfc045e6dc4c48b557a7e..f2553a63a7c8479870588062cd2f661b8f11e154 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="lib/db" VERSION="20071010" COMMENT="XMLDB file for core Moodle tables"
+<XMLDB PATH="lib/db" VERSION="20071108" COMMENT="XMLDB file for core Moodle tables"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
 >
         <KEY NAME="itemid" TYPE="foreign" FIELDS="itemid" REFTABLE="grade_items" REFFIELDS="id" PREVIOUS="primary" NEXT="userid"/>
         <KEY NAME="userid" TYPE="foreign" FIELDS="userid" REFTABLE="user" REFFIELDS="id" PREVIOUS="itemid" NEXT="rawscaleid"/>
         <KEY NAME="rawscaleid" TYPE="foreign" FIELDS="rawscaleid" REFTABLE="scale" REFFIELDS="id" PREVIOUS="userid" NEXT="usermodified"/>
-        <KEY NAME="usermodified" TYPE="foreign" FIELDS="usermodified" REFTABLE="user" REFFIELDS="id" PREVIOUS="rawscaleid"/>
+        <KEY NAME="usermodified" TYPE="foreign" FIELDS="usermodified" REFTABLE="user" REFFIELDS="id" PREVIOUS="rawscaleid" NEXT="userid-itemid"/>
+        <KEY NAME="userid-itemid" TYPE="unique" FIELDS="userid, itemid" COMMENT="one entry per user per item" PREVIOUS="usermodified"/>
       </KEYS>
       <INDEXES>
         <INDEX NAME="locked-locktime" UNIQUE="false" FIELDS="locked, locktime" COMMENT="used in grading cron"/>
index 13429501a002952fb7f2f2cd2a4c22d68f162e15..94858d0bd57684a70a65c99cfb7a459a1738d9cd 100644 (file)
@@ -2583,6 +2583,20 @@ function xmldb_main_upgrade($oldversion=0) {
             // Could not create the readme file. No cause for huge concern
             notify("Could not create the README.txt file in $readmefilename.");
         } 
+    }
+    
+    if ($result && $oldversion < 2007101502) {
+
+    /// Define key userid-itemid (unique) to be added to grade_grades
+        $table = new XMLDBTable('grade_grades');
+        $key = new XMLDBKey('userid-itemid');
+        $key->setAttributes(XMLDB_KEY_UNIQUE, array('userid', 'itemid'));
+
+    /// Launch add key userid-itemid
+        $result = $result && add_key($table, $key);
+
+    /// Main savepoint reached
+        upgrade_main_savepoint($result, 2007101502);
     }    
 
     return $result;
index 049b4d018563f5360b23b22e98a2367a7a223263..26d2c5364350e435c343297123b5adce392bc4a1 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 = 2007101501;  // YYYYMMDD = date
+    $version = 2007101502;  // YYYYMMDD = date
                             //       XY = increments within a single day
 
     $release = '2.0 dev';   // Human-friendly version name