]> git.mjollnir.org Git - moodle.git/commitdiff
Merged from MOODLE_14_STABLE:
authormjollnir_ <mjollnir_>
Wed, 17 Nov 2004 07:47:03 +0000 (07:47 +0000)
committermjollnir_ <mjollnir_>
Wed, 17 Nov 2004 07:47:03 +0000 (07:47 +0000)
Add a unique key to guarantee that course,sortorder is unique. Allows fix_course_sortorder and ordering operations to be much faster. (martinlanghoff)

Plus more indexes for user table (mjollnir_)

arch-eduforge@catalyst.net.nz--2004/moodle--eduforge--1.3.3--patch-231
arch-eduforge@catalyst.net.nz--2004/moodle--eduforge--1.3.3--patch-236

lib/db/mysql.php
lib/db/mysql.sql
lib/db/postgres7.php
lib/db/postgres7.sql

index ebcac41ba2b9061bd2228a2499f7c27d0b6e38e9..40ff6d648398747e64231ad8a2f7b99607944eec 100644 (file)
@@ -939,6 +939,37 @@ function main_upgrade($oldversion=0) {
         modify_database('','ALTER TABLE prefix_user_admins ADD INDEX userid (userid);');
         modify_database('','ALTER TABLE prefix_user_coursecreators ADD INDEX userid (userid);');
     }
+
+    if ($oldversion < 2004111700) { // replace index on course
+        fix_course_sortorder(0,0,1);
+        execute_sql("ALTER TABLE `prefix_course` DROP KEY category",false);
+
+        execute_sql("ALTER TABLE `prefix_course` DROP KEY category_sortorder;",false);
+        modify_database('', "ALTER TABLE `prefix_course` ADD UNIQUE KEY category_sortorder(category,sortorder)"); 
+
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_deleted_idx;",false);
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_confirmed_idx;",false);
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_firstname_idx;",false);
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_lastname_idx;",false);
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_city_idx;",false); 
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_country_idx;",false); 
+        execute_sql("ALTER TABLE `prefix_user` DROP INDEX prefix_user_lastaccess_idx;",false);
+
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_deleted_idx  (deleted)");
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_confirmed_idx (confirmed)");
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_firstname_idx (firstname)");
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_lastname_idx (lastname)");
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_city_idx (city)");
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_country_idx (country)");
+        modify_database("", "ALTER TABLE `prefix_user` ADD INDEX prefix_user_lastaccess_idx (lastaccess)");
+     }
+    if ($oldversion < 2004111700) { // one more index for email (for sorting)
+        execute_sql('ALTER TABLE `prefix_user` DROP INDEX prefix_user_email_idx;',false);
+        modify_database('','ALTER TABLE `prefix_user` ADD INDEX prefix_user_email_idx (email);');
+    }
+
+    
     
     return $result;
 
index 340c8b793c78de75122e1e7a4dd94ef1469fae8e..09f2daf0da8d00a1a92b5be28849cc830b42f9fe 100644 (file)
@@ -369,7 +369,15 @@ CREATE TABLE `prefix_user` (
   `timemodified` int(10) unsigned NOT NULL default '0',
   PRIMARY KEY  (`id`),
   UNIQUE KEY `id` (`id`),
-  UNIQUE KEY `username` (`username`)
+  UNIQUE KEY `username` (`username`),
+  KEY `user_deleted` (`deleted`),
+  KEY `user_confirmed` (`confirmed`),
+  KEY `user_firstname` (`firstname`),
+  KEY `user_lastname` (`lastname`),
+  KEY `user_city` (`city`),
+  KEY `user_country` (`country`),
+  KEY `user_lastaccess` (`lastaccess`),
+  KEY `user_email` (`email`)
 ) TYPE=MyISAM COMMENT='One record for each person';
 
 ALTER TABLE `prefix_user` ADD INDEX `auth` (`auth`);
index cdd3f6726df4f8c8f53ef43e7458ac33c6a716b2..61929150bbffd366db4fb8aba98bbf780ccff238 100644 (file)
@@ -680,7 +680,36 @@ function main_upgrade($oldversion=0) {
         modify_database('','CREATE INDEX prefix_user_coursecreators_userid_idx ON prefix_user_coursecreators (userid);');
     }
    
-
+    if ($oldversion < 2004111700) { // make new indexes on user table.
+        fix_course_sortorder(0,0,1);
+
+        execute_sql("DROP INDEX prefix_course_category_idx;",false);
+        execute_sql("DROP INDEX prefix_course_category_sortorder_uk;",false);
+        modify_database('', "CREATE UNIQUE INDEX prefix_course_category_sortorder_uk ON prefix_course(category,sortorder)"); 
+
+        execute_sql("DROP INDEX prefix_user_deleted_idx;",false);
+        execute_sql("DROP INDEX prefix_user_confirmed_idx;",false);
+        execute_sql("DROP INDEX prefix_user_firstname_idx;",false);
+        execute_sql("DROP INDEX prefix_user_lastname_idx;",false);
+        execute_sql("DROP INDEX prefix_user_city_idx;",false); 
+        execute_sql("DROP INDEX prefix_user_country_idx;",false); 
+        execute_sql("DROP INDEX prefix_user_lastaccess_idx;",false);
+
+        modify_database("","CREATE INDEX prefix_user_deleted_idx ON prefix_user (deleted)");
+        modify_database("","CREATE INDEX prefix_user_confirmed_idx ON prefix_user (confirmed)");
+        modify_database("","CREATE INDEX prefix_user_firstname_idx ON prefix_user (firstname)");
+        modify_database("","CREATE INDEX prefix_user_lastname_idx ON prefix_user (lastname)");
+        modify_database("","CREATE INDEX prefix_user_city_idx ON prefix_user (city)");
+        modify_database("","CREATE INDEX prefix_user_country_idx ON prefix_user (country)");
+        modify_database("","CREATE INDEX prefix_user_lastaccess_idx ON prefix_user (lastaccess)");
+    }
+
+    if ($oldversion < 2004111700) { // one more index for email (for sorting)
+        execute_sql('DROP INDEX prefix_user_email_idx;',false);
+
+        modify_database('','CREATE INDEX prefix_user_email_idx ON prefix_user (email);');
+     }
     return $result;
 }
 
index 78fdde1f95f8e738066649aade3932e91843d17d..ebc0b9c52685395331eaa38940982cc60e6f0100 100644 (file)
@@ -261,6 +261,14 @@ CREATE TABLE prefix_user (
 
 CREATE INDEX prefix_user_idnumber_idx ON prefix_user (idnumber);
 CREATE INDEX prefix_user_auth_idx ON prefix_user (auth);
+CREATE INDEX prefix_user_deleted_idx ON prefix_user (deleted);
+CREATE INDEX prefix_user_confirmed_idx ON prefix_user (confirmed);
+CREATE INDEX prefix_user_firstname_idx ON prefix_user (firstname);
+CREATE INDEX prefix_user_lastname_idx ON prefix_user (lastname);
+CREATE INDEX prefix_user_city_idx ON prefix_user (city);
+CREATE INDEX prefix_user_country_idx ON prefix_user (country);
+CREATE INDEX prefix_user_lastaccess_idx ON prefix_user (lastaccess);
+CREATE INDEX prefix_user_email_idx ON prefix_user (email);
 
 CREATE TABLE prefix_user_admins (
    id SERIAL PRIMARY KEY,