From 7e0286af89af6b49b013c69f9cb326d533ca9474 Mon Sep 17 00:00:00 2001
From: mjollnir_ <mjollnir_>
Date: Fri, 19 Nov 2004 05:28:51 +0000
Subject: [PATCH] Merged from MOODLE_14_STABLE: Indexes for scorm and version
 bump (honoring partial freeze)

---
 mod/scorm/db/mysql.php     | 15 +++++++++++++++
 mod/scorm/db/mysql.sql     | 11 ++++++++---
 mod/scorm/db/postgres7.php | 15 +++++++++++++++
 mod/scorm/db/postgres7.sql |  8 ++++++++
 mod/scorm/version.php      |  2 +-
 5 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/mod/scorm/db/mysql.php b/mod/scorm/db/mysql.php
index 640c9d8264..1afdebfbe9 100755
--- a/mod/scorm/db/mysql.php
+++ b/mod/scorm/db/mysql.php
@@ -26,6 +26,21 @@ function scorm_upgrade($oldversion) {
       table_column("scorm", "", "maxgrade", "FLOAT", "3", "", "0", "NOT NULL", "reference");
       table_column("scorm", "", "grademethod", "TINYINT", "2", "", "0", "NOT NULL", "maxgrade");
     }
+
+    if ($oldversion < 2004111200) {
+        execute_sql("ALTER TABLE {$CFG->prefix}scorm DROP INDEX course;",false);
+        execute_sql("ALTER TABLE {$CFG->prefix}scorm_scoes DROP INDEX scorm;",false);
+        execute_sql("ALTER TABLE {$CFG->prefix}scorm_sco_users DROP INDEX scormid;",false);
+        execute_sql("ALTER TABLE {$CFG->prefix}scorm_sco_users DROP INDEX userid;",false);
+        execute_sql("ALTER TABLE {$CFG->prefix}scorm_sco_users DROP INDEX scoid;",false);
+
+        modify_database('','ALTER TABLE prefix_scorm ADD INDEX course (course);');
+        modify_database('','ALTER TABLE prefix_scorm_scoes ADD INDEX scorm (scorm);');
+        modify_database('','ALTER TABLE prefix_scorm_sco_users ADD INDEX scormid (scormid);');
+        modify_database('','ALTER TABLE prefix_scorm_sco_users ADD INDEX userid (userid);');
+        modify_database('','ALTER TABLE prefix_scorm_sco_users ADD INDEX scoid (scoid);');
+    }
+
     return true;
 }
 
diff --git a/mod/scorm/db/mysql.sql b/mod/scorm/db/mysql.sql
index c2ff87444c..d93b1aa607 100755
--- a/mod/scorm/db/mysql.sql
+++ b/mod/scorm/db/mysql.sql
@@ -16,7 +16,8 @@ CREATE TABLE prefix_scorm (
   popup varchar(255) NOT NULL default '',
   timemodified int(10) unsigned NOT NULL default '0',
   PRIMARY KEY  (id),
-  UNIQUE KEY id (id)
+  UNIQUE KEY id (id),
+  KEY course (course)
 ) TYPE=MyISAM;
 
 CREATE TABLE prefix_scorm_scoes (
@@ -33,7 +34,8 @@ CREATE TABLE prefix_scorm_scoes (
   next tinyint(1) unsigned NOT NULL default '0',
   previous tinyint(1) unsigned NOT NULL default '0',
   PRIMARY KEY (id),
-  UNIQUE KEY id (id)
+  UNIQUE KEY id (id),
+  KEY scorm (scorm)
 ) TYPE=MyISAM;
 
 CREATE TABLE prefix_scorm_sco_users (
@@ -48,7 +50,10 @@ CREATE TABLE prefix_scorm_sco_users (
   cmi_core_session_time varchar(13) NOT NULL default '00:00:00',
   cmi_core_score_raw float(3) NOT NULL default '0',
   cmi_suspend_data longtext,
-  PRIMARY KEY  (id)
+  PRIMARY KEY  (id),
+  KEY userid (userid),
+  KEY scormid (scormid),
+  KEY scoid (scoid)
 ) TYPE=MyISAM;
 
 #
diff --git a/mod/scorm/db/postgres7.php b/mod/scorm/db/postgres7.php
index 8f594648f5..3635ac59e9 100755
--- a/mod/scorm/db/postgres7.php
+++ b/mod/scorm/db/postgres7.php
@@ -26,6 +26,21 @@ function scorm_upgrade($oldversion) {
         table_column("scorm", "", "maxgrade", "real", "3", "", "0", "NOT NULL", "reference");
         table_column("scorm", "", "grademethod", "integer", "", "", "0", "NOT NULL", "maxgrade");
     }
+    
+    if ($oldversion < 2004111200) {
+        execute_sql("DROP INDEX {$CFG->prefix}scorm_course_idx;",false);
+        execute_sql("DROP INDEX {$CFG->prefix}scorm_scoes_scorm_idx;",false); 
+        execute_sql("DROP INDEX {$CFG->prefix}scorm_sco_users_userid_idx;",false); 
+        execute_sql("DROP INDEX {$CFG->prefix}scorm_sco_users_scormid_idx;",false);
+        execute_sql("DROP INDEX {$CFG->prefix}scorm_sco_users_scoid_idx;",false);
+
+        modify_database('','CREATE INDEX prefix_scorm_course_idx ON prefix_scorm (course);');
+        modify_database('','CREATE INDEX prefix_scorm_scoes_scorm_idx ON prefix_scorm_scoes (scorm);');
+        modify_database('','CREATE INDEX prefix_scorm_sco_users_userid_idx ON  prefix_scorm_sco_users (userid);');
+        modify_database('','CREATE INDEX prefix_scorm_sco_users_scormid_idx ON  prefix_scorm_sco_users (scormid);');
+        modify_database('','CREATE INDEX prefix_scorm_sco_users_scoid_idx ON  prefix_scorm_sco_users (scoid);');
+    }
+
     return true;
 }
 
diff --git a/mod/scorm/db/postgres7.sql b/mod/scorm/db/postgres7.sql
index 73b4cc02ff..1a4bf2cf52 100755
--- a/mod/scorm/db/postgres7.sql
+++ b/mod/scorm/db/postgres7.sql
@@ -17,6 +17,8 @@ CREATE TABLE prefix_scorm (
   timemodified integer NOT NULL default '0'
 );
 
+CREATE INDEX prefix_scorm_course_idx ON prefix_scorm (course);
+
 CREATE TABLE prefix_scorm_scoes (
   id SERIAL PRIMARY KEY,
   scorm integer NOT NULL default '0',
@@ -32,6 +34,8 @@ CREATE TABLE prefix_scorm_scoes (
   previous integer NOT NULL default '0'
 );
 
+CREATE INDEX prefix_scorm_scoes_scorm_idx ON prefix_scorm_scoes (scorm);
+
 CREATE TABLE prefix_scorm_sco_users (
   id SERIAL PRIMARY KEY,
   userid integer NOT NULL default '0',
@@ -46,6 +50,10 @@ CREATE TABLE prefix_scorm_sco_users (
   cmi_suspend_data text NOT NULL default ''
 );
 
+CREATE INDEX prefix_scorm_sco_users_userid_idx ON  prefix_scorm_sco_users (userid);
+CREATE INDEX prefix_scorm_sco_users_scormid_idx ON  prefix_scorm_sco_users (scormid);
+CREATE INDEX prefix_scorm_sco_users_scoid_idx ON  prefix_scorm_sco_users (scoid);
+
 #
 # Dumping data for table `log_display`
 #
diff --git a/mod/scorm/version.php b/mod/scorm/version.php
index f2eee4bae0..24d464790d 100755
--- a/mod/scorm/version.php
+++ b/mod/scorm/version.php
@@ -5,7 +5,7 @@
 ///  This fragment is called by moodle_needs_upgrading() and /admin/index.php
 /////////////////////////////////////////////////////////////////////////////////
 
-$module->version  = 2004110200;   // The (date) version of this module
+$module->version  = 2004111200;   // The (date) version of this module
 $module->requires = 2004110200;   // The version of Moodle that is required
 $module->cron     = 0;            // How often should cron check this module (seconds)?
 
-- 
2.39.5