diff --git a/lib/db/install.xml b/lib/db/install.xml
index b5313dbedbb..8811be30d34 100644
--- a/lib/db/install.xml
+++ b/lib/db/install.xml
@@ -1719,7 +1719,8 @@
-
+
+
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php
index b0e08993cef..25594cb8d4a 100644
--- a/lib/db/upgrade.php
+++ b/lib/db/upgrade.php
@@ -2258,7 +2258,6 @@ function xmldb_main_upgrade($oldversion=0) {
if ($result && $oldversion < 2007100100) {
-
/// Define table cache_flags to be created
$table = new XMLDBTable('cache_flags');
@@ -2273,31 +2272,19 @@ function xmldb_main_upgrade($oldversion=0) {
/// Adding keys to table cache_flags
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
+ /*
+ * Note: mysql can not create indexes on text fields larger than 333 chars!
+ */
+
/// Adding indexes to table cache_flags
- $table->addIndexInfo('typename', XMLDB_INDEX_UNIQUE, array('flagtype', 'name'));
+ $table->addIndexInfo('flagtype', XMLDB_INDEX_NOTUNIQUE, array('flagtype'));
+ $table->addIndexInfo('name', XMLDB_INDEX_NOTUNIQUE, array('name'));
/// Launch create table for cache_flags
- $result = $result && create_table($table);
- }
-
-
-/*
- /// drop old gradebook tables
- if ($result && $oldversion < xxxxxxxx) {
- $tables = array('grade_category',
- 'grade_item',
- 'grade_letter',
- 'grade_preferences',
- 'grade_exceptions');
-
- foreach ($tables as $table) {
- $table = new XMLDBTable($table);
- if (table_exists($table)) {
- drop_table($table);
- }
+ if (!table_exists($table)) {
+ $result = $result && create_table($table);
}
}
-*/
if ($oldversion < 2007100300) {
//
@@ -2318,6 +2305,51 @@ function xmldb_main_upgrade($oldversion=0) {
$result = $result && add_field($table, $field);
}
+ if ($result && $oldversion < 2007100301) {
+
+ /// Define table cache_flags to be created
+ $table = new XMLDBTable('cache_flags');
+ $index = new XMLDBIndex('typename');
+ if (index_exists($table, $index)) {
+ $result = $result && drop_index($table, $index);
+ }
+
+ $table = new XMLDBTable('cache_flags');
+ $index = new XMLDBIndex('flagtype');
+ $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('flagtype'));
+ if (!index_exists($table, $index)) {
+ $result = $result && add_index($table, $index);
+ }
+
+ $table = new XMLDBTable('cache_flags');
+ $index = new XMLDBIndex('name');
+ $index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('name'));
+ if (!index_exists($table, $index)) {
+ $result = $result && add_index($table, $index);
+ }
+ }
+
+
+
+/* NOTE: please keep this at the end of upgrade file for now ;-)
+ /// drop old gradebook tables
+ if ($result && $oldversion < xxxxxxxx) {
+ $tables = array('grade_category',
+ 'grade_item',
+ 'grade_letter',
+ 'grade_preferences',
+ 'grade_exceptions');
+
+ foreach ($tables as $table) {
+ $table = new XMLDBTable($table);
+ if (table_exists($table)) {
+ drop_table($table);
+ }
+ }
+ }
+*/
+
+
return $result;
}
diff --git a/version.php b/version.php
index 14db001e145..69209bf1758 100644
--- a/version.php
+++ b/version.php
@@ -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 = 2007100300; // YYYYMMDD = date
+ $version = 2007100301; // YYYYMMDD = date
// XY = increments within a single day
$release = '1.9 Beta +'; // Human-friendly version name