]> git.mjollnir.org Git - moodle.git/commitdiff
Fix upgrade that MySQL could not cope with.
authortjhunt <tjhunt>
Thu, 1 Mar 2007 16:47:55 +0000 (16:47 +0000)
committertjhunt <tjhunt>
Thu, 1 Mar 2007 16:47:55 +0000 (16:47 +0000)
mod/quiz/db/upgrade.php

index d9b54353fbaef116a047007cfe23b431d6a8287d..2eb3824c205cc7a6e600ada47da5b2447146d659 100644 (file)
@@ -28,16 +28,15 @@ function xmldb_quiz_upgrade($oldversion=0) {
 /// this comment lines once this file start handling proper
 /// upgrade code.
 
-/// if ($result && $oldversion < YYYYMMDD00) { //New version in version.php
-///     $result = result of "/lib/ddllib.php" function calls
-/// }
-
     if ($result && $oldversion < 2007022800) {
     /// Ensure that there are not existing duplicate entries in the database.
-        delete_records_select('question_numerical_units', "id > (SELECT MIN(iqnu.id)
+        $duplicateunits = get_records_select('question_numerical_units', "id > (SELECT MIN(iqnu.id)
                 FROM {$CFG->prefix}question_numerical_units iqnu
                 WHERE iqnu.question = {$CFG->prefix}question_numerical_units.question AND
-                        iqnu.unit = {$CFG->prefix}question_numerical_units.unit)");
+                        iqnu.unit = {$CFG->prefix}question_numerical_units.unit)", '', 'id');
+        if ($duplicateunits) {
+            delete_records_select('question_numerical_units', 'id IN (' . implode(',', array_keys($duplicateunits)) . ')');
+        }
 
     /// Define index question-unit (unique) to be added to question_numerical_units
         $table = new XMLDBTable('question_numerical_units');