* Preserve usertext_timestamp index name for MySQL, prefix it for SQLite. Issues...
authorTim Starling <tstarling@users.mediawiki.org>
Thu, 15 Jan 2009 14:20:28 +0000 (14:20 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Thu, 15 Jan 2009 14:20:28 +0000 (14:20 +0000)
* Clean up some E_STRICT issues

includes/db/Database.php
includes/db/DatabasePostgres.php
includes/db/DatabaseSqlite.php
maintenance/sqlite/archives/initial-indexes.sql
maintenance/tables.sql

index b1442e7..a09bcd3 100644 (file)
@@ -1191,6 +1191,7 @@ class Database {
                # SHOW INDEX should work for 3.x and up:
                # http://dev.mysql.com/doc/mysql/en/SHOW_INDEX.html
                $table = $this->tableName( $table );
+               $index = $this->indexName( $index );
                $sql = 'SHOW INDEX FROM '.$table;
                $res = $this->query( $sql, $fname );
                if ( !$res ) {
@@ -1573,6 +1574,18 @@ class Database {
                return implode(' ',array($straightJoins,$otherJoins) );
        }
 
+       /**
+        * Get the name of an index in a given table
+        */
+       function indexName( $index ) {
+               // Backwards-compatibility hack
+               if ( $index == 'ar_usertext_timestamp' ) {
+                       return 'usertext_timestamp';
+               } else {
+                       return $index;
+               }
+       }
+
        /**
         * Wrapper for addslashes()
         * @param $s String: to be slashed.
@@ -1621,7 +1634,7 @@ class Database {
         * PostgreSQL doesn't have them and returns ""
         */
        function useIndexClause( $index ) {
-               return "FORCE INDEX ($index)";
+               return "FORCE INDEX (" . $this->indexName( $index ) . ")";
        }
 
        /**
@@ -2258,8 +2271,12 @@ class Database {
                }
 
                // Table prefixes
-               $ins = preg_replace_callback( '/\/\*(?:\$wgDBprefix|_)\*\/([a-zA-Z_0-9]*)/',
-                       array( &$this, 'tableNameCallback' ), $ins );
+               $ins = preg_replace_callback( '!/\*(?:\$wgDBprefix|_)\*/([a-zA-Z_0-9]*)!',
+                       array( $this, 'tableNameCallback' ), $ins );
+
+               // Index names
+               $ins = preg_replace_callback( '!/\*i\*/([a-zA-Z_0-9]*)!', 
+                       array( $this, 'indexNameCallback' ), $ins );
                return $ins;
        }
 
@@ -2271,6 +2288,13 @@ class Database {
                return $this->tableName( $matches[1] );
        }
 
+       /**
+        * Index name callback
+        */
+       protected function indexNameCallback( $matches ) {
+               return $this->indexName( $matches[1] );
+       }
+
        /*
         * Build a concatenation list to feed into a SQL query
        */
index 91fd516..f8c0eb5 100644 (file)
@@ -698,7 +698,7 @@ class DatabasePostgres extends Database {
                        return NULL;
                }
                while ( $row = $this->fetchObject( $res ) ) {
-                       if ( $row->indexname == $index ) {
+                       if ( $row->indexname == $this->indexName( $index ) ) {
                                return $row;
                        }
                }
@@ -707,7 +707,9 @@ class DatabasePostgres extends Database {
 
        function indexUnique ($table, $index, $fname = 'Database::indexUnique' ) {
                $sql = "SELECT indexname FROM pg_indexes WHERE tablename='{$table}'".
-                       " AND indexdef LIKE 'CREATE UNIQUE%({$index})'";
+                       " AND indexdef LIKE 'CREATE UNIQUE%(" . 
+                       $this->strencode( $this->indexName( $index ) ) .
+                       ")'";
                $res = $this->query( $sql, $fname );
                if ( !$res )
                        return NULL;
index f22f25c..7a59569 100644 (file)
@@ -101,11 +101,11 @@ class DatabaseSqlite extends Database {
                return $res;
        }
 
-       function freeResult(&$res) {
+       function freeResult($res) {
                if ($res instanceof ResultWrapper) $res->result = NULL; else $res = NULL;
        }
 
-       function fetchObject(&$res) {
+       function fetchObject($res) {
                if ($res instanceof ResultWrapper) $r =& $res->result; else $r =& $res;
                $cur = current($r);
                if (is_array($cur)) {
@@ -117,7 +117,7 @@ class DatabaseSqlite extends Database {
                return false;
        }
 
-       function fetchRow(&$res) {
+       function fetchRow($res) {
                if ($res instanceof ResultWrapper) $r =& $res->result; else $r =& $res;
                $cur = current($r);
                if (is_array($cur)) {
@@ -130,17 +130,17 @@ class DatabaseSqlite extends Database {
        /**
         * The PDO::Statement class implements the array interface so count() will work
         */
-       function numRows(&$res) {
+       function numRows($res) {
                $r = $res instanceof ResultWrapper ? $res->result : $res;
                return count($r);
        }
 
-       function numFields(&$res) {
+       function numFields($res) {
                $r = $res instanceof ResultWrapper ? $res->result : $res;
                return is_array($r) ? count($r[0]) : 0;
        }
 
-       function fieldName(&$res,$n) {
+       function fieldName($res,$n) {
                $r = $res instanceof ResultWrapper ? $res->result : $res;
                if (is_array($r)) {
                        $keys = array_keys($r[0]);
@@ -156,6 +156,13 @@ class DatabaseSqlite extends Database {
                return str_replace('`','',parent::tableName($name));
        }
 
+       /**
+        * Index names have DB scope
+        */
+       function indexName( $index ) {
+               return $index;
+       }
+
        /**
         * This must be called after nextSequenceVal
         */
@@ -163,7 +170,7 @@ class DatabaseSqlite extends Database {
                return $this->mConn->lastInsertId();
        }
 
-       function dataSeek(&$res,$row) {
+       function dataSeek($res,$row) {
                if ($res instanceof ResultWrapper) $r =& $res->result; else $r =& $res;
                reset($r);
                if ($row > 0) for ($i = 0; $i < $row; $i++) next($r);
@@ -194,7 +201,7 @@ class DatabaseSqlite extends Database {
         * - if errors are explicitly ignored, returns NULL on failure
         */
        function indexInfo($table, $index, $fname = 'Database::indexExists') {
-               $sql = 'PRAGMA index_info(' . $this->addQuotes( $index ) . ')';
+               $sql = 'PRAGMA index_info(' . $this->addQuotes( $this->indexName( $index ) ) . ')';
                $res = $this->query( $sql, $fname );
                if ( !$res ) {
                        return null;
@@ -213,7 +220,7 @@ class DatabaseSqlite extends Database {
                $row = $this->selectRow( 'sqlite_master', '*', 
                        array(
                                'type' => 'index',
-                               'name' => $index,
+                               'name' => $this->indexName( $index ),
                        ), $fname );
                if ( !$row || !isset( $row->sql ) ) {
                        return null;
@@ -314,7 +321,7 @@ class DatabaseSqlite extends Database {
        /**
         * Query whether a given column exists in the mediawiki schema
         */
-       function fieldExists($table, $field) {
+       function fieldExists($table, $field, $fname = '') {
                $info = $this->fieldInfo( $table, $field );
                return (bool)$info;
        }
@@ -335,19 +342,19 @@ class DatabaseSqlite extends Database {
                return false;
        }
 
-       function begin() {
+       function begin( $fname = '' ) {
                if ($this->mTrxLevel == 1) $this->commit();
                $this->mConn->beginTransaction();
                $this->mTrxLevel = 1;
        }
 
-       function commit() {
+       function commit( $fname = '' ) {
                if ($this->mTrxLevel == 0) return;
                $this->mConn->commit();
                $this->mTrxLevel = 0;
        }
 
-       function rollback() {
+       function rollback( $fname = '' ) {
                if ($this->mTrxLevel == 0) return;
                $this->mConn->rollBack();
                $this->mTrxLevel = 0;
index 5c0305d..a88b7a2 100644 (file)
@@ -51,8 +51,8 @@ CREATE TABLE /*_*/user_tmp (
   user_registration binary(14),
   user_editcount int
 );
-CREATE UNIQUE INDEX user_name ON /*_*/user_tmp (user_name);
-CREATE INDEX user_email_token ON /*_*/user_tmp (user_email_token);
+CREATE UNIQUE INDEX /*i*/user_name ON /*_*/user_tmp (user_name);
+CREATE INDEX /*i*/user_email_token ON /*_*/user_tmp (user_email_token);
 
 
 CREATE TABLE /*_*/user_groups_tmp (
@@ -60,8 +60,8 @@ CREATE TABLE /*_*/user_groups_tmp (
   ug_group varbinary(16) NOT NULL default ''
 );
 
-CREATE UNIQUE INDEX ug_user_group ON /*_*/user_groups_tmp (ug_user,ug_group);
-CREATE INDEX ug_group ON /*_*/user_groups_tmp (ug_group);
+CREATE UNIQUE INDEX /*i*/ug_user_group ON /*_*/user_groups_tmp (ug_user,ug_group);
+CREATE INDEX /*i*/ug_group ON /*_*/user_groups_tmp (ug_group);
 
 CREATE TABLE /*_*/page_tmp (
   page_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
@@ -77,9 +77,9 @@ CREATE TABLE /*_*/page_tmp (
   page_len int unsigned NOT NULL
 );
 
-CREATE UNIQUE INDEX name_title ON /*_*/page_tmp (page_namespace,page_title);
-CREATE INDEX page_random ON /*_*/page_tmp (page_random);
-CREATE INDEX page_len ON /*_*/page_tmp (page_len);
+CREATE UNIQUE INDEX /*i*/name_title ON /*_*/page_tmp (page_namespace,page_title);
+CREATE INDEX /*i*/page_random ON /*_*/page_tmp (page_random);
+CREATE INDEX /*i*/page_len ON /*_*/page_tmp (page_len);
 
 
 CREATE TABLE /*_*/revision_tmp (
@@ -95,11 +95,11 @@ CREATE TABLE /*_*/revision_tmp (
   rev_len int unsigned,
   rev_parent_id int unsigned default NULL
 );
-CREATE UNIQUE INDEX rev_page_id ON /*_*/revision_tmp (rev_page, rev_id);
-CREATE INDEX rev_timestamp ON /*_*/revision_tmp (rev_timestamp);
-CREATE INDEX page_timestamp ON /*_*/revision_tmp (rev_page,rev_timestamp);
-CREATE INDEX user_timestamp ON /*_*/revision_tmp (rev_user,rev_timestamp);
-CREATE INDEX usertext_timestamp ON /*_*/revision_tmp (rev_user_text,rev_timestamp);
+CREATE UNIQUE INDEX /*i*/rev_page_id ON /*_*/revision_tmp (rev_page, rev_id);
+CREATE INDEX /*i*/rev_timestamp ON /*_*/revision_tmp (rev_timestamp);
+CREATE INDEX /*i*/page_timestamp ON /*_*/revision_tmp (rev_page,rev_timestamp);
+CREATE INDEX /*i*/user_timestamp ON /*_*/revision_tmp (rev_user,rev_timestamp);
+CREATE INDEX /*i*/usertext_timestamp ON /*_*/revision_tmp (rev_user_text,rev_timestamp);
 
 CREATE TABLE /*_*/pagelinks_tmp (
   pl_from int unsigned NOT NULL default 0,
@@ -107,8 +107,8 @@ CREATE TABLE /*_*/pagelinks_tmp (
   pl_title varchar(255) binary NOT NULL default ''
 );
 
-CREATE UNIQUE INDEX pl_from ON /*_*/pagelinks_tmp (pl_from,pl_namespace,pl_title);
-CREATE INDEX pl_namespace_title ON /*_*/pagelinks_tmp (pl_namespace,pl_title,pl_from);
+CREATE UNIQUE INDEX /*i*/pl_from ON /*_*/pagelinks_tmp (pl_from,pl_namespace,pl_title);
+CREATE INDEX /*i*/pl_namespace_title ON /*_*/pagelinks_tmp (pl_namespace,pl_title,pl_from);
 
 
 CREATE TABLE /*_*/templatelinks_tmp (
@@ -117,16 +117,16 @@ CREATE TABLE /*_*/templatelinks_tmp (
   tl_title varchar(255) binary NOT NULL default ''
 );
 
-CREATE UNIQUE INDEX tl_from ON /*_*/templatelinks_tmp (tl_from,tl_namespace,tl_title);
-CREATE INDEX tl_namespace_title ON /*_*/templatelinks_tmp (tl_namespace,tl_title,tl_from);
+CREATE UNIQUE INDEX /*i*/tl_from ON /*_*/templatelinks_tmp (tl_from,tl_namespace,tl_title);
+CREATE INDEX /*i*/tl_namespace_title ON /*_*/templatelinks_tmp (tl_namespace,tl_title,tl_from);
 
 
 CREATE TABLE /*_*/imagelinks_tmp (
   il_from int unsigned NOT NULL default 0,
   il_to varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
-CREATE UNIQUE INDEX il_from ON /*_*/imagelinks_tmp (il_from,il_to);
-CREATE INDEX il_to ON /*_*/imagelinks_tmp (il_to,il_from);
+CREATE UNIQUE INDEX /*i*/il_from ON /*_*/imagelinks_tmp (il_from,il_to);
+CREATE INDEX /*i*/il_to ON /*_*/imagelinks_tmp (il_to,il_from);
 
 
 CREATE TABLE /*_*/categorylinks_tmp (
@@ -135,9 +135,9 @@ CREATE TABLE /*_*/categorylinks_tmp (
   cl_sortkey varchar(70) binary NOT NULL default '',
   cl_timestamp timestamp NOT NULL
 );
-CREATE UNIQUE INDEX cl_from ON /*_*/categorylinks_tmp (cl_from,cl_to);
-CREATE INDEX cl_sortkey ON /*_*/categorylinks_tmp (cl_to,cl_sortkey,cl_from);
-CREATE INDEX cl_timestamp ON /*_*/categorylinks_tmp (cl_to,cl_timestamp);
+CREATE UNIQUE INDEX /*i*/cl_from ON /*_*/categorylinks_tmp (cl_from,cl_to);
+CREATE INDEX /*i*/cl_sortkey ON /*_*/categorylinks_tmp (cl_to,cl_sortkey,cl_from);
+CREATE INDEX /*i*/cl_timestamp ON /*_*/categorylinks_tmp (cl_to,cl_timestamp);
 
 
 CREATE TABLE /*_*/category_tmp (
@@ -148,8 +148,8 @@ CREATE TABLE /*_*/category_tmp (
   cat_files int signed NOT NULL default 0,
   cat_hidden tinyint unsigned NOT NULL default 0
 );
-CREATE UNIQUE INDEX cat_title ON /*_*/category_tmp (cat_title);
-CREATE INDEX cat_pages ON /*_*/category_tmp (cat_pages);
+CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category_tmp (cat_title);
+CREATE INDEX /*i*/cat_pages ON /*_*/category_tmp (cat_pages);
 
 CREATE TABLE /*_*/langlinks_tmp (
   ll_from int unsigned NOT NULL default 0,
@@ -157,8 +157,8 @@ CREATE TABLE /*_*/langlinks_tmp (
   ll_title varchar(255) binary NOT NULL default ''
 );
 
-CREATE UNIQUE INDEX ll_from ON /*_*/langlinks_tmp (ll_from, ll_lang);
-CREATE INDEX ll_lang_title ON /*_*/langlinks_tmp (ll_lang, ll_title);
+CREATE UNIQUE INDEX /*i*/ll_from ON /*_*/langlinks_tmp (ll_from, ll_lang);
+CREATE INDEX /*i*/ll_lang_title ON /*_*/langlinks_tmp (ll_lang, ll_title);
 
 
 CREATE TABLE /*_*/site_stats_tmp (
@@ -172,7 +172,7 @@ CREATE TABLE /*_*/site_stats_tmp (
   ss_admins int default '-1',
   ss_images int default 0
 );
-CREATE UNIQUE INDEX ss_row_id ON /*_*/site_stats_tmp (ss_row_id);
+CREATE UNIQUE INDEX /*i*/ss_row_id ON /*_*/site_stats_tmp (ss_row_id);
 
 
 CREATE TABLE /*_*/ipblocks_tmp (
@@ -196,11 +196,11 @@ CREATE TABLE /*_*/ipblocks_tmp (
   ipb_block_email bool NOT NULL default 0,
   ipb_allow_usertalk bool NOT NULL default 0
 );
-CREATE UNIQUE INDEX ipb_address ON /*_*/ipblocks_tmp (ipb_address(255), ipb_user, ipb_auto, ipb_anon_only);
-CREATE INDEX ipb_user ON /*_*/ipblocks_tmp (ipb_user);
-CREATE INDEX ipb_range ON /*_*/ipblocks_tmp (ipb_range_start(8), ipb_range_end(8));
-CREATE INDEX ipb_timestamp ON /*_*/ipblocks_tmp (ipb_timestamp);
-CREATE INDEX ipb_expiry ON /*_*/ipblocks_tmp (ipb_expiry);
+CREATE UNIQUE INDEX /*i*/ipb_address ON /*_*/ipblocks_tmp (ipb_address(255), ipb_user, ipb_auto, ipb_anon_only);
+CREATE INDEX /*i*/ipb_user ON /*_*/ipblocks_tmp (ipb_user);
+CREATE INDEX /*i*/ipb_range ON /*_*/ipblocks_tmp (ipb_range_start(8), ipb_range_end(8));
+CREATE INDEX /*i*/ipb_timestamp ON /*_*/ipblocks_tmp (ipb_timestamp);
+CREATE INDEX /*i*/ipb_expiry ON /*_*/ipblocks_tmp (ipb_expiry);
 
 
 CREATE TABLE /*_*/watchlist_tmp (
@@ -210,8 +210,8 @@ CREATE TABLE /*_*/watchlist_tmp (
   wl_notificationtimestamp varbinary(14)
 );
 
-CREATE UNIQUE INDEX wl_user_namespace_title ON /*_*/watchlist_tmp (wl_user, wl_namespace, wl_title);
-CREATE INDEX namespace_title ON /*_*/watchlist_tmp (wl_namespace, wl_title);
+CREATE UNIQUE INDEX /*i*/wl_user_namespace_title ON /*_*/watchlist_tmp (wl_user, wl_namespace, wl_title);
+CREATE INDEX /*i*/namespace_title ON /*_*/watchlist_tmp (wl_namespace, wl_title);
 
 
 CREATE TABLE /*_*/math_tmp (
@@ -222,7 +222,7 @@ CREATE TABLE /*_*/math_tmp (
   math_mathml text  
 );
 
-CREATE UNIQUE INDEX math_inputhash ON /*_*/math_tmp (math_inputhash);
+CREATE UNIQUE INDEX /*i*/math_inputhash ON /*_*/math_tmp (math_inputhash);
 
 
 CREATE TABLE /*_*/interwiki_tmp (
@@ -232,7 +232,7 @@ CREATE TABLE /*_*/interwiki_tmp (
   iw_trans tinyint NOT NULL default 0
 );
 
-CREATE UNIQUE INDEX iw_prefix ON /*_*/interwiki_tmp (iw_prefix);
+CREATE UNIQUE INDEX /*i*/iw_prefix ON /*_*/interwiki_tmp (iw_prefix);
 
 
 CREATE TABLE /*_*/page_restrictions_tmp (
@@ -245,10 +245,10 @@ CREATE TABLE /*_*/page_restrictions_tmp (
   pr_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT
 );
 
-CREATE UNIQUE INDEX pr_pagetype ON /*_*/page_restrictions_tmp (pr_page,pr_type);
-CREATE UNIQUE INDEX pr_typelevel ON /*_*/page_restrictions_tmp (pr_type,pr_level);
-CREATE UNIQUE INDEX pr_level ON /*_*/page_restrictions_tmp (pr_level);
-CREATE UNIQUE INDEX pr_cascade ON /*_*/page_restrictions_tmp (pr_cascade);
+CREATE UNIQUE INDEX /*i*/pr_pagetype ON /*_*/page_restrictions_tmp (pr_page,pr_type);
+CREATE UNIQUE INDEX /*i*/pr_typelevel ON /*_*/page_restrictions_tmp (pr_type,pr_level);
+CREATE UNIQUE INDEX /*i*/pr_level ON /*_*/page_restrictions_tmp (pr_level);
+CREATE UNIQUE INDEX /*i*/pr_cascade ON /*_*/page_restrictions_tmp (pr_cascade);
 
 CREATE TABLE /*_*/protected_titles_tmp (
   pt_namespace int NOT NULL,
@@ -259,15 +259,15 @@ CREATE TABLE /*_*/protected_titles_tmp (
   pt_expiry varbinary(14) NOT NULL default '',
   pt_create_perm varbinary(60) NOT NULL
 );
-CREATE UNIQUE INDEX pt_namespace_title ON /*_*/protected_titles_tmp (pt_namespace,pt_title);
-CREATE INDEX pt_timestamp ON /*_*/protected_titles_tmp (pt_timestamp);
+CREATE UNIQUE INDEX /*i*/pt_namespace_title ON /*_*/protected_titles_tmp (pt_namespace,pt_title);
+CREATE INDEX /*i*/pt_timestamp ON /*_*/protected_titles_tmp (pt_timestamp);
 
 CREATE TABLE /*_*/page_props_tmp (
   pp_page int NOT NULL,
   pp_propname varbinary(60) NOT NULL,
   pp_value blob NOT NULL
 );
-CREATE UNIQUE INDEX pp_page_propname ON /*_*/page_props_tmp (pp_page,pp_propname);
+CREATE UNIQUE INDEX /*i*/pp_page_propname ON /*_*/page_props_tmp (pp_page,pp_propname);
 
 --------------------------------------------------------------------------------
 -- Populate the new tables using INSERT SELECT
@@ -344,9 +344,9 @@ CREATE TABLE /*_*/searchindex (
   si_title varchar(255) NOT NULL default '',
   si_text mediumtext NOT NULL
 );
-CREATE UNIQUE INDEX si_page ON /*_*/searchindex (si_page);
-CREATE INDEX si_title ON /*_*/searchindex (si_title);
-CREATE INDEX si_text ON /*_*/searchindex (si_text);
+CREATE UNIQUE INDEX /*i*/si_page ON /*_*/searchindex (si_page);
+CREATE INDEX /*i*/si_title ON /*_*/searchindex (si_title);
+CREATE INDEX /*i*/si_text ON /*_*/searchindex (si_text);
 
 DROP TABLE IF EXISTS /*_*/transcache;
 CREATE TABLE /*_*/transcache (
@@ -354,14 +354,14 @@ CREATE TABLE /*_*/transcache (
   tc_contents text,
   tc_time int NOT NULL
 ) /*$wgDBTableOptions*/;
-CREATE UNIQUE INDEX tc_url_idx ON /*_*/transcache (tc_url);
+CREATE UNIQUE INDEX /*i*/tc_url_idx ON /*_*/transcache (tc_url);
 
 DROP TABLE IF EXISTS /*_*/querycache_info;
 CREATE TABLE /*_*/querycache_info (
   qci_type varbinary(32) NOT NULL default '',
   qci_timestamp binary(14) NOT NULL default '19700101000000'
 ) /*$wgDBTableOptions*/;
-CREATE UNIQUE INDEX qci_type ON /*_*/querycache_info (qci_type);
+CREATE UNIQUE INDEX /*i*/qci_type ON /*_*/querycache_info (qci_type);
 
 --------------------------------------------------------------------------------
 -- Empty some cache tables to make the update faster
@@ -375,43 +375,43 @@ DELETE FROM /*_*/querycachetwo;
 -- Add indexes to tables with no unique indexes
 --------------------------------------------------------------------------------
 
-CREATE INDEX un_user_id ON /*_*/user_newtalk (user_id);
-CREATE INDEX un_user_ip ON /*_*/user_newtalk (user_ip);
-CREATE INDEX name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);
-CREATE INDEX ar_usertext_timestamp ON /*_*/archive (ar_user_text,ar_timestamp);
-CREATE INDEX el_from ON /*_*/externallinks (el_from, el_to(40));
-CREATE INDEX el_to ON /*_*/externallinks (el_to(60), el_from);
-CREATE INDEX el_index ON /*_*/externallinks (el_index(60));
-CREATE INDEX img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);
-CREATE INDEX img_size ON /*_*/image (img_size);
-CREATE INDEX img_timestamp ON /*_*/image (img_timestamp);
-CREATE INDEX img_sha1 ON /*_*/image (img_sha1);
-CREATE INDEX oi_usertext_timestamp ON /*_*/oldimage (oi_user_text,oi_timestamp);
-CREATE INDEX oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp);
-CREATE INDEX oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14));
-CREATE INDEX oi_sha1 ON /*_*/oldimage (oi_sha1);
-CREATE INDEX fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
-CREATE INDEX fa_group_key ON /*_*/filearchive (fa_storage_group, fa_storage_key);
-CREATE INDEX fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
-CREATE INDEX fa_user_timestamp ON /*_*/filearchive (fa_user_text,fa_timestamp);
-CREATE INDEX rc_timestamp ON /*_*/recentchanges (rc_timestamp);
-CREATE INDEX rc_namespace_title ON /*_*/recentchanges (rc_namespace, rc_title);
-CREATE INDEX rc_cur_id ON /*_*/recentchanges (rc_cur_id);
-CREATE INDEX new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace,rc_timestamp);
-CREATE INDEX rc_ip ON /*_*/recentchanges (rc_ip);
-CREATE INDEX rc_ns_usertext ON /*_*/recentchanges (rc_namespace, rc_user_text);
-CREATE INDEX rc_user_text ON /*_*/recentchanges (rc_user_text, rc_timestamp);
-CREATE INDEX qc_type_value ON /*_*/querycache (qc_type,qc_value);
-CREATE INDEX oc_exptime ON /*_*/objectcache (exptime);
-CREATE INDEX type_time ON /*_*/logging (log_type, log_timestamp);
-CREATE INDEX user_time ON /*_*/logging (log_user, log_timestamp);
-CREATE INDEX page_time ON /*_*/logging (log_namespace, log_title, log_timestamp);
-CREATE INDEX times ON /*_*/logging (log_timestamp);
-CREATE INDEX tb_page ON /*_*/trackbacks (tb_page);
-CREATE INDEX job_cmd_namespace_title ON /*_*/job (job_cmd, job_namespace, job_title);
-CREATE INDEX rd_ns_title ON /*_*/redirect (rd_namespace,rd_title,rd_from);
-CREATE INDEX qcc_type ON /*_*/querycachetwo (qcc_type,qcc_value);
-CREATE INDEX qcc_title ON /*_*/querycachetwo (qcc_type,qcc_namespace,qcc_title);
-CREATE INDEX qcc_titletwo ON /*_*/querycachetwo (qcc_type,qcc_namespacetwo,qcc_titletwo);
+CREATE INDEX /*i*/un_user_id ON /*_*/user_newtalk (user_id);
+CREATE INDEX /*i*/un_user_ip ON /*_*/user_newtalk (user_ip);
+CREATE INDEX /*i*/name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);
+CREATE INDEX /*i*/ar_usertext_timestamp ON /*_*/archive (ar_user_text,ar_timestamp);
+CREATE INDEX /*i*/el_from ON /*_*/externallinks (el_from, el_to(40));
+CREATE INDEX /*i*/el_to ON /*_*/externallinks (el_to(60), el_from);
+CREATE INDEX /*i*/el_index ON /*_*/externallinks (el_index(60));
+CREATE INDEX /*i*/img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);
+CREATE INDEX /*i*/img_size ON /*_*/image (img_size);
+CREATE INDEX /*i*/img_timestamp ON /*_*/image (img_timestamp);
+CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1);
+CREATE INDEX /*i*/oi_usertext_timestamp ON /*_*/oldimage (oi_user_text,oi_timestamp);
+CREATE INDEX /*i*/oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp);
+CREATE INDEX /*i*/oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14));
+CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1);
+CREATE INDEX /*i*/fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
+CREATE INDEX /*i*/fa_group_key ON /*_*/filearchive (fa_storage_group, fa_storage_key);
+CREATE INDEX /*i*/fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
+CREATE INDEX /*i*/fa_user_timestamp ON /*_*/filearchive (fa_user_text,fa_timestamp);
+CREATE INDEX /*i*/rc_timestamp ON /*_*/recentchanges (rc_timestamp);
+CREATE INDEX /*i*/rc_namespace_title ON /*_*/recentchanges (rc_namespace, rc_title);
+CREATE INDEX /*i*/rc_cur_id ON /*_*/recentchanges (rc_cur_id);
+CREATE INDEX /*i*/new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace,rc_timestamp);
+CREATE INDEX /*i*/rc_ip ON /*_*/recentchanges (rc_ip);
+CREATE INDEX /*i*/rc_ns_usertext ON /*_*/recentchanges (rc_namespace, rc_user_text);
+CREATE INDEX /*i*/rc_user_text ON /*_*/recentchanges (rc_user_text, rc_timestamp);
+CREATE INDEX /*i*/qc_type_value ON /*_*/querycache (qc_type,qc_value);
+CREATE INDEX /*i*/oc_exptime ON /*_*/objectcache (exptime);
+CREATE INDEX /*i*/type_time ON /*_*/logging (log_type, log_timestamp);
+CREATE INDEX /*i*/user_time ON /*_*/logging (log_user, log_timestamp);
+CREATE INDEX /*i*/page_time ON /*_*/logging (log_namespace, log_title, log_timestamp);
+CREATE INDEX /*i*/times ON /*_*/logging (log_timestamp);
+CREATE INDEX /*i*/tb_page ON /*_*/trackbacks (tb_page);
+CREATE INDEX /*i*/job_cmd_namespace_title ON /*_*/job (job_cmd, job_namespace, job_title);
+CREATE INDEX /*i*/rd_ns_title ON /*_*/redirect (rd_namespace,rd_title,rd_from);
+CREATE INDEX /*i*/qcc_type ON /*_*/querycachetwo (qcc_type,qcc_value);
+CREATE INDEX /*i*/qcc_title ON /*_*/querycachetwo (qcc_type,qcc_namespace,qcc_title);
+CREATE INDEX /*i*/qcc_titletwo ON /*_*/querycachetwo (qcc_type,qcc_namespacetwo,qcc_titletwo);
 
 INSERT INTO /*_*/updatelog VALUES ('initial_indexes');
index d5559f7..dd87795 100644 (file)
@@ -129,8 +129,8 @@ CREATE TABLE /*_*/user (
   user_editcount int
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX user_name ON /*_*/user (user_name);
-CREATE INDEX user_email_token ON /*_*/user (user_email_token);
+CREATE UNIQUE INDEX /*i*/user_name ON /*_*/user (user_name);
+CREATE INDEX /*i*/user_email_token ON /*_*/user (user_email_token);
 
 
 --
@@ -156,8 +156,8 @@ CREATE TABLE /*_*/user_groups (
   ug_group varbinary(16) NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX ug_user_group ON /*_*/user_groups (ug_user,ug_group);
-CREATE INDEX ug_group ON /*_*/user_groups (ug_group);
+CREATE UNIQUE INDEX /*i*/ug_user_group ON /*_*/user_groups (ug_user,ug_group);
+CREATE INDEX /*i*/ug_group ON /*_*/user_groups (ug_group);
 
 
 -- Stores notifications of user talk page changes, for the display
@@ -174,8 +174,8 @@ CREATE TABLE /*_*/user_newtalk (
 ) /*$wgDBTableOptions*/;
 
 -- Indexes renamed for SQLite in 1.14
-CREATE INDEX un_user_id ON /*_*/user_newtalk (user_id);
-CREATE INDEX un_user_ip ON /*_*/user_newtalk (user_ip);
+CREATE INDEX /*i*/un_user_id ON /*_*/user_newtalk (user_id);
+CREATE INDEX /*i*/un_user_ip ON /*_*/user_newtalk (user_ip);
 
 
 --
@@ -229,9 +229,9 @@ CREATE TABLE /*_*/page (
   page_len int unsigned NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX name_title ON /*_*/page (page_namespace,page_title);
-CREATE INDEX page_random ON /*_*/page (page_random);
-CREATE INDEX page_len ON /*_*/page (page_len);
+CREATE UNIQUE INDEX /*i*/name_title ON /*_*/page (page_namespace,page_title);
+CREATE INDEX /*i*/page_random ON /*_*/page (page_random);
+CREATE INDEX /*i*/page_len ON /*_*/page (page_len);
 
 
 --
@@ -283,11 +283,11 @@ CREATE TABLE /*_*/revision (
 ) /*$wgDBTableOptions*/ MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
 -- In case tables are created as MyISAM, use row hints for MySQL <5.0 to avoid 4GB limit
 
-CREATE UNIQUE INDEX rev_page_id ON /*_*/revision (rev_page, rev_id);
-CREATE INDEX rev_timestamp ON /*_*/revision (rev_timestamp);
-CREATE INDEX page_timestamp ON /*_*/revision (rev_page,rev_timestamp);
-CREATE INDEX user_timestamp ON /*_*/revision (rev_user,rev_timestamp);
-CREATE INDEX usertext_timestamp ON /*_*/revision (rev_user_text,rev_timestamp);
+CREATE UNIQUE INDEX /*i*/rev_page_id ON /*_*/revision (rev_page, rev_id);
+CREATE INDEX /*i*/rev_timestamp ON /*_*/revision (rev_timestamp);
+CREATE INDEX /*i*/page_timestamp ON /*_*/revision (rev_page,rev_timestamp);
+CREATE INDEX /*i*/user_timestamp ON /*_*/revision (rev_user,rev_timestamp);
+CREATE INDEX /*i*/usertext_timestamp ON /*_*/revision (rev_user_text,rev_timestamp);
 
 --
 -- Holds text of individual page revisions.
@@ -388,8 +388,8 @@ CREATE TABLE /*_*/archive (
   ar_parent_id int unsigned default NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);
-CREATE INDEX ar_usertext_timestamp ON /*_*/archive (ar_user_text,ar_timestamp);
+CREATE INDEX /*i*/name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);
+CREATE INDEX /*i*/ar_usertext_timestamp ON /*_*/archive (ar_user_text,ar_timestamp);
 
 
 --
@@ -407,8 +407,8 @@ CREATE TABLE /*_*/pagelinks (
   pl_title varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX pl_from ON /*_*/pagelinks (pl_from,pl_namespace,pl_title);
-CREATE INDEX pl_namespace_title ON /*_*/pagelinks (pl_namespace,pl_title,pl_from);
+CREATE UNIQUE INDEX /*i*/pl_from ON /*_*/pagelinks (pl_from,pl_namespace,pl_title);
+CREATE INDEX /*i*/pl_namespace_title ON /*_*/pagelinks (pl_namespace,pl_title,pl_from);
 
 
 --
@@ -426,8 +426,8 @@ CREATE TABLE /*_*/templatelinks (
   tl_title varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX tl_from ON /*_*/templatelinks (tl_from,tl_namespace,tl_title);
-CREATE INDEX tl_namespace_title ON /*_*/templatelinks (tl_namespace,tl_title,tl_from);
+CREATE UNIQUE INDEX /*i*/tl_from ON /*_*/templatelinks (tl_from,tl_namespace,tl_title);
+CREATE INDEX /*i*/tl_namespace_title ON /*_*/templatelinks (tl_namespace,tl_title,tl_from);
 
 
 --
@@ -445,8 +445,8 @@ CREATE TABLE /*_*/imagelinks (
   il_to varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX il_from ON /*_*/imagelinks (il_from,il_to);
-CREATE INDEX il_to ON /*_*/imagelinks (il_to,il_from);
+CREATE UNIQUE INDEX /*i*/il_from ON /*_*/imagelinks (il_from,il_to);
+CREATE INDEX /*i*/il_to ON /*_*/imagelinks (il_to,il_from);
 
 
 --
@@ -477,13 +477,13 @@ CREATE TABLE /*_*/categorylinks (
   cl_timestamp timestamp NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX cl_from ON /*_*/categorylinks (cl_from,cl_to);
+CREATE UNIQUE INDEX /*i*/cl_from ON /*_*/categorylinks (cl_from,cl_to);
 
 -- We always sort within a given category...
-CREATE INDEX cl_sortkey ON /*_*/categorylinks (cl_to,cl_sortkey,cl_from);
+CREATE INDEX /*i*/cl_sortkey ON /*_*/categorylinks (cl_to,cl_sortkey,cl_from);
 
 -- Not really used?
-CREATE INDEX cl_timestamp ON /*_*/categorylinks (cl_to,cl_timestamp);
+CREATE INDEX /*i*/cl_timestamp ON /*_*/categorylinks (cl_to,cl_timestamp);
 
 
 -- 
@@ -513,10 +513,10 @@ CREATE TABLE /*_*/category (
   cat_hidden tinyint unsigned NOT NULL default 0
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX cat_title ON /*_*/category (cat_title);
+CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category (cat_title);
 
 -- For Special:Mostlinkedcategories
-CREATE INDEX cat_pages ON /*_*/category (cat_pages);
+CREATE INDEX /*i*/cat_pages ON /*_*/category (cat_pages);
 
 
 --
@@ -543,9 +543,9 @@ CREATE TABLE /*_*/externallinks (
   el_index blob NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX el_from ON /*_*/externallinks (el_from, el_to(40));
-CREATE INDEX el_to ON /*_*/externallinks (el_to(60), el_from);
-CREATE INDEX el_index ON /*_*/externallinks (el_index(60));
+CREATE INDEX /*i*/el_from ON /*_*/externallinks (el_from, el_to(40));
+CREATE INDEX /*i*/el_to ON /*_*/externallinks (el_to(60), el_from);
+CREATE INDEX /*i*/el_index ON /*_*/externallinks (el_index(60));
 
 
 -- 
@@ -562,8 +562,8 @@ CREATE TABLE /*_*/langlinks (
   ll_title varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX ll_from ON /*_*/langlinks (ll_from, ll_lang);
-CREATE INDEX ll_lang_title ON /*_*/langlinks (ll_lang, ll_title);
+CREATE UNIQUE INDEX /*i*/ll_from ON /*_*/langlinks (ll_from, ll_lang);
+CREATE INDEX /*i*/ll_lang_title ON /*_*/langlinks (ll_lang, ll_title);
 
 
 --
@@ -604,7 +604,7 @@ CREATE TABLE /*_*/site_stats (
 ) /*$wgDBTableOptions*/;
 
 -- Pointless index to assuage developer superstitions
-CREATE UNIQUE INDEX ss_row_id ON /*_*/site_stats (ss_row_id);
+CREATE UNIQUE INDEX /*i*/ss_row_id ON /*_*/site_stats (ss_row_id);
 
 
 --
@@ -682,12 +682,12 @@ CREATE TABLE /*_*/ipblocks (
   
 -- Unique index to support "user already blocked" messages
 -- Any new options which prevent collisions should be included
-CREATE UNIQUE INDEX ipb_address ON /*_*/ipblocks (ipb_address(255), ipb_user, ipb_auto, ipb_anon_only);
+CREATE UNIQUE INDEX /*i*/ipb_address ON /*_*/ipblocks (ipb_address(255), ipb_user, ipb_auto, ipb_anon_only);
 
-CREATE INDEX ipb_user ON /*_*/ipblocks (ipb_user);
-CREATE INDEX ipb_range ON /*_*/ipblocks (ipb_range_start(8), ipb_range_end(8));
-CREATE INDEX ipb_timestamp ON /*_*/ipblocks (ipb_timestamp);
-CREATE INDEX ipb_expiry ON /*_*/ipblocks (ipb_expiry);
+CREATE INDEX /*i*/ipb_user ON /*_*/ipblocks (ipb_user);
+CREATE INDEX /*i*/ipb_range ON /*_*/ipblocks (ipb_range_start(8), ipb_range_end(8));
+CREATE INDEX /*i*/ipb_timestamp ON /*_*/ipblocks (ipb_timestamp);
+CREATE INDEX /*i*/ipb_expiry ON /*_*/ipblocks (ipb_expiry);
 
 
 --
@@ -740,13 +740,13 @@ CREATE TABLE /*_*/image (
   img_sha1 varbinary(32) NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);
+CREATE INDEX /*i*/img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);
 -- Used by Special:Imagelist for sort-by-size
-CREATE INDEX img_size ON /*_*/image (img_size);
+CREATE INDEX /*i*/img_size ON /*_*/image (img_size);
 -- Used by Special:Newimages and Special:Imagelist
-CREATE INDEX img_timestamp ON /*_*/image (img_timestamp);
+CREATE INDEX /*i*/img_timestamp ON /*_*/image (img_timestamp);
 -- Used in API and duplicate search
-CREATE INDEX img_sha1 ON /*_*/image (img_sha1);
+CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1);
 
 
 --
@@ -780,11 +780,11 @@ CREATE TABLE /*_*/oldimage (
   oi_sha1 varbinary(32) NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX oi_usertext_timestamp ON /*_*/oldimage (oi_user_text,oi_timestamp);
-CREATE INDEX oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp);
+CREATE INDEX /*i*/oi_usertext_timestamp ON /*_*/oldimage (oi_user_text,oi_timestamp);
+CREATE INDEX /*i*/oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp);
 -- oi_archive_name truncated to 14 to avoid key length overflow
-CREATE INDEX oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14));
-CREATE INDEX oi_sha1 ON /*_*/oldimage (oi_sha1);
+CREATE INDEX /*i*/oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14));
+CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1);
 
 
 --
@@ -836,13 +836,13 @@ CREATE TABLE /*_*/filearchive (
 ) /*$wgDBTableOptions*/;
 
 -- pick out by image name
-CREATE INDEX fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
+CREATE INDEX /*i*/fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
 -- pick out dupe files
-CREATE INDEX fa_group_key ON /*_*/filearchive (fa_storage_group, fa_storage_key);
+CREATE INDEX /*i*/fa_group_key ON /*_*/filearchive (fa_storage_group, fa_storage_key);
 -- sort by deletion time
-CREATE INDEX fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
+CREATE INDEX /*i*/fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
 -- sort by uploader
-CREATE INDEX fa_user_timestamp ON /*_*/filearchive (fa_user_text,fa_timestamp);
+CREATE INDEX /*i*/fa_user_timestamp ON /*_*/filearchive (fa_user_text,fa_timestamp);
 
 
 --
@@ -918,13 +918,13 @@ CREATE TABLE /*_*/recentchanges (
   rc_params blob NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX rc_timestamp ON /*_*/recentchanges (rc_timestamp);
-CREATE INDEX rc_namespace_title ON /*_*/recentchanges (rc_namespace, rc_title);
-CREATE INDEX rc_cur_id ON /*_*/recentchanges (rc_cur_id);
-CREATE INDEX new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace,rc_timestamp);
-CREATE INDEX rc_ip ON /*_*/recentchanges (rc_ip);
-CREATE INDEX rc_ns_usertext ON /*_*/recentchanges (rc_namespace, rc_user_text);
-CREATE INDEX rc_user_text ON /*_*/recentchanges (rc_user_text, rc_timestamp);
+CREATE INDEX /*i*/rc_timestamp ON /*_*/recentchanges (rc_timestamp);
+CREATE INDEX /*i*/rc_namespace_title ON /*_*/recentchanges (rc_namespace, rc_title);
+CREATE INDEX /*i*/rc_cur_id ON /*_*/recentchanges (rc_cur_id);
+CREATE INDEX /*i*/new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace,rc_timestamp);
+CREATE INDEX /*i*/rc_ip ON /*_*/recentchanges (rc_ip);
+CREATE INDEX /*i*/rc_ns_usertext ON /*_*/recentchanges (rc_namespace, rc_user_text);
+CREATE INDEX /*i*/rc_user_text ON /*_*/recentchanges (rc_user_text, rc_timestamp);
 
 
 CREATE TABLE /*_*/watchlist (
@@ -943,8 +943,8 @@ CREATE TABLE /*_*/watchlist (
   
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX wl_user_namespace_title ON /*_*/watchlist (wl_user, wl_namespace, wl_title);
-CREATE INDEX namespace_title ON /*_*/watchlist (wl_namespace, wl_title);
+CREATE UNIQUE INDEX /*i*/wl_user_namespace_title ON /*_*/watchlist (wl_user, wl_namespace, wl_title);
+CREATE INDEX /*i*/namespace_title ON /*_*/watchlist (wl_namespace, wl_title);
 
 
 --
@@ -969,7 +969,7 @@ CREATE TABLE /*_*/math (
   math_mathml text  
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX math_inputhash ON /*_*/math (math_inputhash);
+CREATE UNIQUE INDEX /*i*/math_inputhash ON /*_*/math (math_inputhash);
 
 
 --
@@ -991,9 +991,9 @@ CREATE TABLE /*_*/searchindex (
   si_text mediumtext NOT NULL
 ) ENGINE=MyISAM;
 
-CREATE UNIQUE INDEX si_page ON /*_*/searchindex (si_page);
-CREATE FULLTEXT INDEX si_title ON /*_*/searchindex (si_title);
-CREATE FULLTEXT INDEX si_text ON /*_*/searchindex (si_text);
+CREATE UNIQUE INDEX /*i*/si_page ON /*_*/searchindex (si_page);
+CREATE FULLTEXT INDEX /*i*/si_title ON /*_*/searchindex (si_title);
+CREATE FULLTEXT INDEX /*i*/si_text ON /*_*/searchindex (si_text);
 
 
 --
@@ -1016,7 +1016,7 @@ CREATE TABLE /*_*/interwiki (
   iw_trans tinyint NOT NULL default 0
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX iw_prefix ON /*_*/interwiki (iw_prefix);
+CREATE UNIQUE INDEX /*i*/iw_prefix ON /*_*/interwiki (iw_prefix);
 
 
 --
@@ -1034,7 +1034,7 @@ CREATE TABLE /*_*/querycache (
   qc_title varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX qc_type_value ON /*_*/querycache (qc_type,qc_value);
+CREATE INDEX /*i*/qc_type_value ON /*_*/querycache (qc_type,qc_value);
 
 
 --
@@ -1045,7 +1045,7 @@ CREATE TABLE /*_*/objectcache (
   value mediumblob,
   exptime datetime
 ) /*$wgDBTableOptions*/;
-CREATE INDEX oc_exptime ON /*_*/objectcache (exptime);
+CREATE INDEX /*i*/oc_exptime ON /*_*/objectcache (exptime);
 
 
 --
@@ -1057,7 +1057,7 @@ CREATE TABLE /*_*/transcache (
   tc_time int NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX tc_url_idx ON /*_*/transcache (tc_url);
+CREATE UNIQUE INDEX /*i*/tc_url_idx ON /*_*/transcache (tc_url);
 
 
 CREATE TABLE /*_*/logging (
@@ -1091,10 +1091,10 @@ CREATE TABLE /*_*/logging (
   log_deleted tinyint unsigned NOT NULL default 0
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX type_time ON /*_*/logging (log_type, log_timestamp);
-CREATE INDEX user_time ON /*_*/logging (log_user, log_timestamp);
-CREATE INDEX page_time ON /*_*/logging (log_namespace, log_title, log_timestamp);
-CREATE INDEX times ON /*_*/logging (log_timestamp);
+CREATE INDEX /*i*/type_time ON /*_*/logging (log_type, log_timestamp);
+CREATE INDEX /*i*/user_time ON /*_*/logging (log_user, log_timestamp);
+CREATE INDEX /*i*/page_time ON /*_*/logging (log_namespace, log_title, log_timestamp);
+CREATE INDEX /*i*/times ON /*_*/logging (log_timestamp);
 
 
 CREATE TABLE /*_*/trackbacks (
@@ -1105,7 +1105,7 @@ CREATE TABLE /*_*/trackbacks (
   tb_ex text,
   tb_name varchar(255)
 ) /*$wgDBTableOptions*/;
-CREATE INDEX tb_page ON /*_*/trackbacks (tb_page);
+CREATE INDEX /*i*/tb_page ON /*_*/trackbacks (tb_page);
 
 
 -- Jobs performed by parallel apache threads or a command-line daemon
@@ -1126,7 +1126,7 @@ CREATE TABLE /*_*/job (
   job_params blob NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX job_cmd_namespace_title ON /*_*/job (job_cmd, job_namespace, job_title);
+CREATE INDEX /*i*/job_cmd_namespace_title ON /*_*/job (job_cmd, job_namespace, job_title);
 
 
 -- Details of updates to cached special pages
@@ -1139,7 +1139,7 @@ CREATE TABLE /*_*/querycache_info (
   qci_timestamp binary(14) NOT NULL default '19700101000000'
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX qci_type ON /*_*/querycache_info (qci_type);
+CREATE UNIQUE INDEX /*i*/qci_type ON /*_*/querycache_info (qci_type);
 
 
 -- For each redirect, this table contains exactly one row defining its target
@@ -1155,7 +1155,7 @@ CREATE TABLE /*_*/redirect (
   rd_title varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX rd_ns_title ON /*_*/redirect (rd_namespace,rd_title,rd_from);
+CREATE INDEX /*i*/rd_ns_title ON /*_*/redirect (rd_namespace,rd_title,rd_from);
 
 
 -- Used for caching expensive grouped queries that need two links (for example double-redirects)
@@ -1175,9 +1175,9 @@ CREATE TABLE /*_*/querycachetwo (
   qcc_titletwo varchar(255) binary NOT NULL default ''
 ) /*$wgDBTableOptions*/;
 
-CREATE INDEX qcc_type ON /*_*/querycachetwo (qcc_type,qcc_value);
-CREATE INDEX qcc_title ON /*_*/querycachetwo (qcc_type,qcc_namespace,qcc_title);
-CREATE INDEX qcc_titletwo ON /*_*/querycachetwo (qcc_type,qcc_namespacetwo,qcc_titletwo);
+CREATE INDEX /*i*/qcc_type ON /*_*/querycachetwo (qcc_type,qcc_value);
+CREATE INDEX /*i*/qcc_title ON /*_*/querycachetwo (qcc_type,qcc_namespace,qcc_title);
+CREATE INDEX /*i*/qcc_titletwo ON /*_*/querycachetwo (qcc_type,qcc_namespacetwo,qcc_titletwo);
 
 
 -- Used for storing page restrictions (i.e. protection levels)
@@ -1198,10 +1198,10 @@ CREATE TABLE /*_*/page_restrictions (
   pr_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX pr_pagetype ON /*_*/page_restrictions (pr_page,pr_type);
-CREATE UNIQUE INDEX pr_typelevel ON /*_*/page_restrictions (pr_type,pr_level);
-CREATE UNIQUE INDEX pr_level ON /*_*/page_restrictions (pr_level);
-CREATE UNIQUE INDEX pr_cascade ON /*_*/page_restrictions (pr_cascade);
+CREATE UNIQUE INDEX /*i*/pr_pagetype ON /*_*/page_restrictions (pr_page,pr_type);
+CREATE UNIQUE INDEX /*i*/pr_typelevel ON /*_*/page_restrictions (pr_type,pr_level);
+CREATE UNIQUE INDEX /*i*/pr_level ON /*_*/page_restrictions (pr_level);
+CREATE UNIQUE INDEX /*i*/pr_cascade ON /*_*/page_restrictions (pr_cascade);
 
 
 -- Protected titles - nonexistent pages that have been protected
@@ -1215,8 +1215,8 @@ CREATE TABLE /*_*/protected_titles (
   pt_create_perm varbinary(60) NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX pt_namespace_title ON /*_*/protected_titles (pt_namespace,pt_title);
-CREATE INDEX pt_timestamp ON /*_*/protected_titles (pt_timestamp);
+CREATE UNIQUE INDEX /*i*/pt_namespace_title ON /*_*/protected_titles (pt_namespace,pt_title);
+CREATE INDEX /*i*/pt_timestamp ON /*_*/protected_titles (pt_timestamp);
 
 
 -- Name/value pairs indexed by page_id
@@ -1226,7 +1226,7 @@ CREATE TABLE /*_*/page_props (
   pp_value blob NOT NULL
 ) /*$wgDBTableOptions*/;
 
-CREATE UNIQUE INDEX pp_page_propname ON /*_*/page_props (pp_page,pp_propname);
+CREATE UNIQUE INDEX /*i*/pp_page_propname ON /*_*/page_props (pp_page,pp_propname);
 
 
 -- A table to log updates, one text key row per update.