diff --git a/setup/basic.sql b/setup/basic.sql
index 2858339fb..17badd31d 100644
--- a/setup/basic.sql
+++ b/setup/basic.sql
@@ -248,7 +248,8 @@ CREATE TABLE `$templaterights` (
`role` char(255) DEFAULT NULL,
`folder` bigint(20) DEFAULT NULL,
`notes` char(255) DEFAULT NULL,
- KEY `index1` (`template_id`,`user_id`,`role`(10))
+ KEY `index1` (`template_id`,`user_id`,`role`(10)),
+ KEY `index2` (`folder`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `$templatesyndication` (
@@ -307,7 +308,8 @@ CREATE TABLE `$folderrights` (
`folder_parent` int(11) NOT NULL,
`role` char(255) DEFAULT NULL,
PRIMARY KEY (`id`),
- KEY `index1` (`folder_id`,`login_id`,`role`(10))
+ KEY `index1` (`folder_id`,`login_id`,`role`(10)),
+ KEY `index2` (`folder_parent`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `$folder_group_rights` (
diff --git a/upgrade.php b/upgrade.php
index 9900780bf..368614b44 100644
--- a/upgrade.php
+++ b/upgrade.php
@@ -1398,4 +1398,44 @@ function upgrade_41()
$message = "Adding xapi_force_anonymous_lrs column to sitedetails - ok ? " . ($error ? 'true' : 'false') . "
";
return $message;
-}
\ No newline at end of file
+}
+
+function upgrade_42()
+{
+ global $xerte_toolkits_site;
+
+ // Create an index for templaterights
+ $table = table_by_key('templaterights');
+
+ // First check if index already exists
+ $sql = "SELECT COUNT(1) as count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '$xerte_toolkits_site->database_name' AND TABLE_NAME='$table' AND INDEX_NAME='index2'";
+ $result = db_query_one($sql);
+ if ($result !== false && $result['count'] == '0') {
+ $ok = _upgrade_db_query("ALTER TABLE `$table` ADD INDEX `index2` (`folder` ASC);");
+ $message = "Creating index2 on table templaterights - ok ? " . ($ok ? 'true' : 'false') . "
";
+
+ return $message;
+ }
+ $message = 'Index on templaterights table is already present';
+ return $message;
+}
+
+function upgrade_43()
+{
+ global $xerte_toolkits_site;
+
+ // Create an index for folderrights.folder_parent
+ $table = table_by_key('folderrights');
+
+ // First check if index already exists
+ $sql = "SELECT COUNT(1) as count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '$xerte_toolkits_site->database_name' AND TABLE_NAME='$table' AND INDEX_NAME='index2'";
+ $result = db_query_one($sql);
+ if ($result !== false && $result['count'] == '0') {
+ $ok = _upgrade_db_query("ALTER TABLE `$table` ADD INDEX `index2` (`folder_parent` ASC);");
+ $message = "Creating index2 on table folderrights - ok ? " . ($ok ? 'true' : 'false') . "
";
+
+ return $message;
+ }
+ $message = 'Index on folderrights table is already present';
+ return $message;
+}