]> git.mjollnir.org Git - moodle.git/commitdiff
two fixes connected with UTF migration: (i) remove $CFG->prefix from all index names...
authorgbateson <gbateson>
Sun, 23 Apr 2006 11:53:38 +0000 (11:53 +0000)
committergbateson <gbateson>
Sun, 23 Apr 2006 11:53:38 +0000 (11:53 +0000)
mod/hotpot/db/mysql.php
mod/hotpot/db/mysql.sql
mod/hotpot/db/postgres7.php
mod/hotpot/db/update_to_v2.php

index 4a028b463e72442bca5d605f4b30b8e8f2efb8dd..4f5321beb96858d09563280e69cff73d66583c7b 100644 (file)
@@ -21,17 +21,15 @@ function hotpot_upgrade($oldversion) {
                $ok = $ok && hotpot_get_update_to_v2();\r
                $ok = $ok && hotpot_update_to_v2_1_2();\r
        }\r
-       \r
-    if ($oldversion < 2006042100) {\r
-        $result = execute_sql("ALTER TABLE {$CFG->prefix}hotpot_questions DROP INDEX {$CFG->prefix}hotpot_questions_name_idx");\r
-        $result = execute_sql("ALTER TABLE {$CFG->prefix}hotpot_questions ADD INDEX hotpot_questions_name_idx (name(20))");\r
-        \r
-    }\r
-       \r
-       \r
+       // update to HotPot v2.1.16\r
+       if ($oldversion < 2006042101) {\r
+               $ok = $ok && hotpot_get_update_to_v2();\r
+               $ok = $ok && hotpot_update_to_v2_1_16();\r
+       }\r
        \r
        return $ok;\r
 }\r
+\r
 function hotpot_get_update_to_v2() {\r
        global $CFG;\r
        $filepath = "$CFG->dirroot/mod/hotpot/db/update_to_v2.php";\r
@@ -43,4 +41,5 @@ function hotpot_get_update_to_v2() {
        }\r
        return $ok;\r
 }\r
+\r
 ?>\r
index 14b7ef23235a002aedc46fb699873280d81802d9..788cb117ea1969861a9748b797aca8c2ceeaeeaa 100644 (file)
@@ -44,8 +44,8 @@ CREATE TABLE prefix_hotpot_attempts (
     status tinyint(4) unsigned NOT NULL default '1',
     clickreportid int(10) unsigned default NULL,
     PRIMARY KEY (id),
-    KEY prefix_hotpot_attempts_hotpot_idx (hotpot),
-    KEY prefix_hotpot_attempts_userid_idx (userid)
+    KEY hotpot_attempts_hotpot_idx (hotpot),
+    KEY hotpot_attempts_userid_idx (userid)
 ) TYPE=MyISAM COMMENT='details about Hot Potatoes quiz attempts';
 # 
 # Table structure for table `hotpot_details`
@@ -55,7 +55,7 @@ CREATE TABLE prefix_hotpot_details (
     attempt int(10) unsigned NOT NULL default '0',
     details text default '',
     PRIMARY KEY (id),
-    KEY prefix_hotpot_details_attempt_idx (attempt)
+    KEY hotpot_details_attempt_idx (attempt)
 ) TYPE=MyISAM COMMENT='raw details (as XML) of Hot Potatoes quiz attempts';
 #
 # Table structure for table `hotpot_questions`
@@ -68,7 +68,7 @@ CREATE TABLE prefix_hotpot_questions (
     hotpot int(10) unsigned NOT NULL default '0',
     PRIMARY KEY (id),
     KEY hotpot_questions_name_idx (name(20)),
-    KEY prefix_hotpot_questions_hotpot_idx (hotpot)
+    KEY hotpot_questions_hotpot_idx (hotpot)
 ) TYPE=MyISAM COMMENT='details about questions in Hot Potatoes quiz attempts';
 #
 # Table structure for table `hotpot_responses`
@@ -86,8 +86,8 @@ CREATE TABLE prefix_hotpot_responses (
     clues smallint(6) default NULL,
     checks smallint(6) default NULL,
     PRIMARY KEY (id),
-    KEY prefix_hotpot_responses_attempt_idx (attempt),
-    KEY prefix_hotpot_responses_question_idx (question)
+    KEY hotpot_responses_attempt_idx (attempt),
+    KEY hotpot_responses_question_idx (question)
 ) TYPE=MyISAM COMMENT='details about responses in Hot Potatoes quiz attempts';
 #
 # Table structure for table `hotpot_strings`
@@ -96,6 +96,6 @@ CREATE TABLE prefix_hotpot_strings (
     id int(10) unsigned NOT NULL auto_increment,
     string text NOT NULL default '',
     PRIMARY KEY (id),
-    KEY prefix_hotpot_strings_string_idx (string(20))
+    KEY hotpot_strings_string_idx (string(20))
 ) TYPE=MyISAM COMMENT='strings used in Hot Potatoes questions and responses';
         
index 8d1b54a6335d20a77921f51e310dc666cb195e5c..c147c42bb9d31c445f6bc0d060cc56941f3400f9 100644 (file)
@@ -27,6 +27,11 @@ function hotpot_upgrade($oldversion) {
                $ok = $ok && hotpot_get_update_to_v2();\r
                $ok = $ok && hotpot_update_to_v2_1_8();\r
        }\r
+       // update to HotPot v2.1.16\r
+       if ($oldversion < 2006042101) {\r
+               $ok = $ok && hotpot_get_update_to_v2();\r
+               $ok = $ok && hotpot_update_to_v2_1_16();\r
+       }\r
        return $ok;\r
 }\r
 function hotpot_get_update_to_v2() {\r
index 39c5170e16796c8f7d3e46f03a6dcd4ed95d9321..e3b18aaf9fc4c3035feb8cdba9762f880fd8ef68 100644 (file)
@@ -1,4 +1,31 @@
 <?PHP\r
+function hotpot_update_to_v2_1_16() {\r
+       global $CFG;\r
+       $ok = true;\r
+\r
+       // make sure type of 'name' is a text field (not varchar 255)\r
+       $ok = $ok && hotpot_db_update_field_type('hotpot_questions', 'name', 'name', 'TEXT',   '',  '', 'NOT NULL', '');\r
+\r
+       if (strtolower($CFG->dbtype)=='mysql') {\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_attempts', 'hotpot');\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_attempts', 'userid');\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_details', 'attempt');\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_questions', 'hotpot');\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_questions', 'name', 20);\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_responses', 'attempt');\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_responses', 'question');\r
+               $ok = $ok && hotpot_index_remove_prefix('hotpot_strings', 'string', 20);\r
+       }\r
+       return $ok;\r
+}\r
+function hotpot_index_remove_prefix($table, $field, $length=0) {\r
+       global $CFG;\r
+       $index = "{$table}_{$field}_idx";\r
+       hotpot_db_delete_index("{$CFG->prefix}$table", "{$CFG->prefix}$index");\r
+       hotpot_db_delete_index("{$CFG->prefix}$table", $index);\r
+       return hotpot_db_add_index($table, $field, $length);\r
+}\r
+\r
 function hotpot_update_to_v2_1_8() {\r
        global $CFG;\r
        $ok = true;\r
@@ -776,13 +803,20 @@ function hotpot_db_delete_index($table, $index, $feedback=false) {
 }\r
 function hotpot_db_add_index($table, $field, $length='') {\r
        global $CFG, $db;\r
-       // expand $table and $index names\r
+\r
+       if (strtolower($CFG->dbtype)=='postgres7') {\r
+               $index = "{$CFG->prefix}{$table}_{$field}_idx";\r
+       } else {\r
+               // mysql (and others)\r
+               $index = "{$table}_{$field}_idx";\r
+       }\r
        $table = "{$CFG->prefix}$table";\r
-       $index = "{$table}_{$field}_idx";\r
+\r
        // delete $index if it already exists\r
        $ok = hotpot_db_delete_index($table, $index);\r
+\r
        switch (strtolower($CFG->dbtype)) {\r
-               case 'mysql' : \r
+               case 'mysql' :\r
                        $length = empty($length) ? '' : " ($length)";\r
                        $ok = $ok && $db->Execute("ALTER TABLE `$table` ADD INDEX `$index` (`$field`$length)");\r
                break;\r