Merge from MOODLE_14_STABLE

Additional fixes for indexes in postgres. A few unique indexes may have been created non-unique. Still deferring the version bump -- please review the patch!

Merge of patchsets
 [email protected]/moodle--eduforge--1.3.3--patch-423
 [email protected]/moodle--eduforge--1.3.3--patch-425
This commit is contained in:
martinlanghoff
2004-11-24 22:48:58 +00:00
parent 33bb37e1df
commit b692d2be05
2 changed files with 22 additions and 7 deletions
+20 -6
View File
@@ -735,10 +735,10 @@ function main_upgrade($oldversion=0) {
}
flush();
// drop some indexes quietly -- they may or may not exist depending on what version
// the user upgrades from
// drop some indexes quietly -- they may or may not exist depending on what version
// the user upgrades from
execute_sql("DROP INDEX {$CFG->prefix}user_students_courseuserid_idx ", false);
execute_sql("DROP INDEX {$CFG->prefix}user_students_courseuserid_uk ", false);
execute_sql("DROP INDEX {$CFG->prefix}user_students_courseuserid_uk ", false);
modify_database('','CREATE UNIQUE INDEX prefix_user_students_courseuserid_uk ON prefix_user_students (course,userid);');
/// Delete duplicate teacher enrolments
@@ -752,13 +752,27 @@ function main_upgrade($oldversion=0) {
}
flush();
// drop some indexes quietly -- they may or may not exist depending on what version
// the user upgrades from
// drop some indexes quietly -- they may or may not exist depending on what version
// the user upgrades from
execute_sql("DROP INDEX {$CFG->prefix}user_teachers_courseuserid_idx ", false);
execute_sql("DROP INDEX {$CFG->prefix}user_teachers_courseuserid_uk ", false);
execute_sql("DROP INDEX {$CFG->prefix}user_teachers_courseuserid_uk ", false);
modify_database('','CREATE UNIQUE INDEX prefix_user_teachers_courseuserid_uk ON prefix_user_teachers (course,userid);');
}
if ($oldversion < 2004112401) {
// some postgres databases may have a non-unique index mislabeled unique.
fix_course_sortorder(0,0,1);
execute_sql("DROP INDEX {$CFG->prefix}course_category_sortorder_uk ", false);
execute_sql("DROP INDEX {$CFG->prefix}course_category_idx ", false);
modify_database('', "CREATE UNIQUE INDEX prefix_course_category_sortorder_uk ON prefix_course(category,sortorder);");
// odd! username was missing its unique index!
// first silently drop it just in case...
execute_sql("DROP INDEX {$CFG->prefix}user_username_uk", false);
modify_database('', "CREATE UNIQUE INDEX prefix_user_username_uk ON prefix_user (username);");
}
return $result;
}
+2 -1
View File
@@ -39,7 +39,7 @@ CREATE TABLE prefix_course (
timemodified integer NOT NULL default '0'
);
CREATE INDEX prefix_course_category_idx ON prefix_course (category);
CREATE UNIQUE INDEX prefix_course_category_sortorder_uk ON prefix_course (category,sortorder);
CREATE INDEX prefix_course_idnumber_idx ON prefix_course (idnumber);
CREATE INDEX prefix_course_shortname_idx ON prefix_course (shortname);
@@ -259,6 +259,7 @@ CREATE TABLE prefix_user (
CONSTRAINT prefix_user_username_uk UNIQUE (username)
);
CREATE UNIQUE INDEX prefix_user_username_uk ON prefix_user (username);
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);