Converted two more updater functions to OOP: add_field() and add_index()
authorMax Semenik <maxsem@users.mediawiki.org>
Tue, 17 Aug 2010 17:48:22 +0000 (17:48 +0000)
committerMax Semenik <maxsem@users.mediawiki.org>
Tue, 17 Aug 2010 17:48:22 +0000 (17:48 +0000)
includes/installer/DatabaseUpdater.php
includes/installer/MysqlUpdater.php
includes/installer/SqliteUpdater.php
maintenance/updaters.inc

index 04827bd..4af7472 100644 (file)
@@ -117,7 +117,7 @@ abstract class DatabaseUpdater {
                foreach ( $wgExtNewFields as $fieldRecord ) {
                        if ( $fieldRecord[0] != 'user' || $doUser ) {
                                $updates[] = array(
-                                       'add_field', $fieldRecord[0], $fieldRecord[1],
+                                       'addField', $fieldRecord[0], $fieldRecord[1],
                                                $fieldRecord[2], true
                                );
                        }
@@ -125,7 +125,7 @@ abstract class DatabaseUpdater {
 
                foreach ( $wgExtNewIndexes as $fieldRecord ) {
                        $updates[] = array(
-                               'add_index', $fieldRecord[0], $fieldRecord[1],
+                               'addIndex', $fieldRecord[0], $fieldRecord[1],
                                        $fieldRecord[2], true
                        );
                }
@@ -150,22 +150,67 @@ abstract class DatabaseUpdater {
         */
        protected abstract function getCoreUpdateList();
 
+       /**
+        * Applies a SQL patch
+        * @param $path String Path to the patch file
+        * @param $isFullPath Boolean Whether to treat $path as a relative or not
+        */
+       protected function applyPatch( $path, $isFullPath = false ) {
+               if ( $isFullPath ) {
+                       $this->db->sourceFile( $path );
+               } else {
+                       $this->db->sourceFile( archive( $path ) );
+               }
+       }
+
        /**
         * Add a new table to the database
         * @param $name String Name of the new table
         * @param $patch String Path to the patch file
-        * @param $fullpath Boolean Whether to treat $fullPath as a relative or not
+        * @param $fullpath Boolean Whether to treat $patch path as a relative or not
         */
        protected function addTable( $name, $patch, $fullpath = false ) {
                if ( $this->db->tableExists( $name ) ) {
                        wfOut( "...$name table already exists.\n" );
                } else {
                        wfOut( "Creating $name table..." );
-                       if ( $fullpath ) {
-                               $this->db->sourceFile( $patch );
-                       } else {
-                               $this->db->sourceFile( archive( $patch ) );
-                       }
+                       $this->applyPatch( $patch, $fullpath );
+                       wfOut( "ok\n" );
+               }
+       }
+
+       /**
+        * Add a new field to an existing table
+        * @param $table String Name of the table to modify
+        * @param $field String Name of the new field
+        * @param $patch String Path to the patch file
+        * @param $fullpath Boolean Whether to treat $patch path as a relative or not
+        */
+       protected function addField( $table, $field, $patch, $fullpath = false ) {
+               if ( !$this->db->tableExists( $table ) ) {
+                       wfOut( "...$table table does not exist, skipping new field patch\n" );
+               } elseif ( $this->db->fieldExists( $table, $field ) ) {
+                       wfOut( "...have $field field in $table table.\n" );
+               } else {
+                       wfOut( "Adding $field field to table $table..." );
+                       $this->applyPatch( $patch, $fullpath );
+                       wfOut( "ok\n" );
+               }
+       }
+
+       /**
+        * Add a new index to an existing table
+        * @param $table String Name of the table to modify
+        * @param $index String Name of the new index
+        * @param $patch String Path to the patch file
+        * @param $fullpath Boolean Whether to treat $patch path as a relative or not
+        */
+       function addIndex( $table, $index, $patch, $fullpath = false ) {
+               if ( $this->db->indexExists( $table, $index ) ) {
+                       wfOut( "...$index key already set on $table table.\n" );
+               } else {
+                       wfOut( "Adding $index key to table $table... " );
+                       $this->applyPatch( $patch, $fullpath );
                        wfOut( "ok\n" );
                }
        }
index 82ee42c..99ef570 100644 (file)
@@ -11,124 +11,124 @@ class MysqlUpdater extends DatabaseUpdater {
        protected function getCoreUpdateList() {
                return array(
                        // 1.2
-                       array( 'add_field', 'ipblocks',      'ipb_id',           'patch-ipblocks.sql' ),
-                       array( 'add_field', 'ipblocks',      'ipb_expiry',       'patch-ipb_expiry.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_id',           'patch-ipblocks.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_expiry',       'patch-ipb_expiry.sql' ),
                        array( 'do_interwiki_update' ),
                        array( 'do_index_update' ),
                        array( 'addTable', 'hitcounter',                        'patch-hitcounter.sql' ),
-                       array( 'add_field', 'recentchanges', 'rc_type',          'patch-rc_type.sql' ),
+                       array( 'addField', 'recentchanges', 'rc_type',          'patch-rc_type.sql' ),
 
                        // 1.3
-                       array( 'add_field', 'user',          'user_real_name',   'patch-user-realname.sql' ),
+                       array( 'addField', 'user',          'user_real_name',   'patch-user-realname.sql' ),
                        array( 'addTable', 'querycache',                        'patch-querycache.sql' ),
                        array( 'addTable', 'objectcache',                       'patch-objectcache.sql' ),
                        array( 'addTable', 'categorylinks',                     'patch-categorylinks.sql' ),
                        array( 'do_old_links_update' ),
                        array( 'fix_ancient_imagelinks' ),
-                       array( 'add_field', 'recentchanges', 'rc_ip',            'patch-rc_ip.sql' ),
+                       array( 'addField', 'recentchanges', 'rc_ip',            'patch-rc_ip.sql' ),
 
                        // 1.4
                        array( 'do_image_name_unique_update' ),
-                       array( 'add_field', 'recentchanges', 'rc_id',            'patch-rc_id.sql' ),
-                       array( 'add_field', 'recentchanges', 'rc_patrolled',     'patch-rc-patrol.sql' ),
+                       array( 'addField', 'recentchanges', 'rc_id',            'patch-rc_id.sql' ),
+                       array( 'addField', 'recentchanges', 'rc_patrolled',     'patch-rc-patrol.sql' ),
                        array( 'addTable', 'logging',                           'patch-logging.sql' ),
-                       array( 'add_field', 'user',          'user_token',       'patch-user_token.sql' ),
+                       array( 'addField', 'user',          'user_token',       'patch-user_token.sql' ),
                        array( 'do_watchlist_update' ),
                        array( 'do_user_update' ),
 
                        // 1.5
                        array( 'do_schema_restructuring' ),
-                       array( 'add_field', 'logging',       'log_params',       'patch-log_params.sql' ),
+                       array( 'addField', 'logging',       'log_params',       'patch-log_params.sql' ),
                        array( 'check_bin', 'logging',       'log_title',        'patch-logging-title.sql', ),
-                       array( 'add_field', 'archive',       'ar_rev_id',        'patch-archive-rev_id.sql' ),
-                       array( 'add_field', 'page',          'page_len',         'patch-page_len.sql' ),
+                       array( 'addField', 'archive',       'ar_rev_id',        'patch-archive-rev_id.sql' ),
+                       array( 'addField', 'page',          'page_len',         'patch-page_len.sql' ),
                        array( 'do_inverse_timestamp' ),
                        array( 'do_text_id' ),
-                       array( 'add_field', 'revision',      'rev_deleted',      'patch-rev_deleted.sql' ),
-                       array( 'add_field', 'image',         'img_width',        'patch-img_width.sql' ),
-                       array( 'add_field', 'image',         'img_metadata',     'patch-img_metadata.sql' ),
-                       array( 'add_field', 'user',          'user_email_token', 'patch-user_email_token.sql' ),
-                       array( 'add_field', 'archive',       'ar_text_id',       'patch-archive-text_id.sql' ),
+                       array( 'addField', 'revision',      'rev_deleted',      'patch-rev_deleted.sql' ),
+                       array( 'addField', 'image',         'img_width',        'patch-img_width.sql' ),
+                       array( 'addField', 'image',         'img_metadata',     'patch-img_metadata.sql' ),
+                       array( 'addField', 'user',          'user_email_token', 'patch-user_email_token.sql' ),
+                       array( 'addField', 'archive',       'ar_text_id',       'patch-archive-text_id.sql' ),
                        array( 'doNamespaceSize' ),
-                       array( 'add_field', 'image',         'img_media_type',   'patch-img_media_type.sql' ),
+                       array( 'addField', 'image',         'img_media_type',   'patch-img_media_type.sql' ),
                        array( 'do_pagelinks_update' ),
                        array( 'do_drop_img_type' ),
                        array( 'do_user_unique_update' ),
                        array( 'do_user_groups_update' ),
-                       array( 'add_field', 'site_stats',    'ss_total_pages',   'patch-ss_total_articles.sql' ),
+                       array( 'addField', 'site_stats',    'ss_total_pages',   'patch-ss_total_articles.sql' ),
                        array( 'addTable', 'user_newtalk',                      'patch-usernewtalk2.sql' ),
                        array( 'addTable', 'transcache',                        'patch-transcache.sql' ),
-                       array( 'add_field', 'interwiki',     'iw_trans',         'patch-interwiki-trans.sql' ),
+                       array( 'addField', 'interwiki',     'iw_trans',         'patch-interwiki-trans.sql' ),
                        array( 'addTable', 'trackbacks',                        'patch-trackbacks.sql' ),
 
                        // 1.6
                        array( 'do_watchlist_null' ),
                        array( 'do_logging_timestamp_index' ),
-                       array( 'add_field', 'ipblocks',        'ipb_range_start',  'patch-ipb_range_start.sql' ),
+                       array( 'addField', 'ipblocks',        'ipb_range_start',  'patch-ipb_range_start.sql' ),
                        array( 'do_page_random_update' ),
-                       array( 'add_field', 'user',            'user_registration', 'patch-user_registration.sql' ),
+                       array( 'addField', 'user',            'user_registration', 'patch-user_registration.sql' ),
                        array( 'do_templatelinks_update' ),
                        array( 'addTable', 'externallinks',                       'patch-externallinks.sql' ),
                        array( 'addTable', 'job',                                 'patch-job.sql' ),
-                       array( 'add_field', 'site_stats',      'ss_images',        'patch-ss_images.sql' ),
+                       array( 'addField', 'site_stats',      'ss_images',        'patch-ss_images.sql' ),
                        array( 'addTable', 'langlinks',                           'patch-langlinks.sql' ),
                        array( 'addTable', 'querycache_info',                     'patch-querycacheinfo.sql' ),
                        array( 'addTable', 'filearchive',                         'patch-filearchive.sql' ),
-                       array( 'add_field', 'ipblocks',        'ipb_anon_only',    'patch-ipb_anon_only.sql' ),
+                       array( 'addField', 'ipblocks',        'ipb_anon_only',    'patch-ipb_anon_only.sql' ),
                        array( 'do_rc_indices_update' ),
 
                        // 1.9
-                       array( 'add_field', 'user',          'user_newpass_time', 'patch-user_newpass_time.sql' ),
+                       array( 'addField', 'user',          'user_newpass_time', 'patch-user_newpass_time.sql' ),
                        array( 'addTable', 'redirect',                           'patch-redirect.sql' ),
                        array( 'addTable', 'querycachetwo',                      'patch-querycachetwo.sql' ),
-                       array( 'add_field', 'ipblocks',      'ipb_enable_autoblock', 'patch-ipb_optional_autoblock.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_enable_autoblock', 'patch-ipb_optional_autoblock.sql' ),
                        array( 'do_backlinking_indices_update' ),
-                       array( 'add_field', 'recentchanges', 'rc_old_len',        'patch-rc_len.sql' ),
-                       array( 'add_field', 'user',          'user_editcount',    'patch-user_editcount.sql' ),
+                       array( 'addField', 'recentchanges', 'rc_old_len',        'patch-rc_len.sql' ),
+                       array( 'addField', 'user',          'user_editcount',    'patch-user_editcount.sql' ),
 
                        // 1.10
                        array( 'do_restrictions_update' ),
-                       array( 'add_field', 'logging',       'log_id',           'patch-log_id.sql' ),
-                       array( 'add_field', 'revision',      'rev_parent_id',    'patch-rev_parent_id.sql' ),
-                       array( 'add_field', 'page_restrictions', 'pr_id',        'patch-page_restrictions_sortkey.sql' ),
-                       array( 'add_field', 'revision',      'rev_len',          'patch-rev_len.sql' ),
-                       array( 'add_field', 'recentchanges', 'rc_deleted',       'patch-rc_deleted.sql' ),
-                       array( 'add_field', 'logging',       'log_deleted',      'patch-log_deleted.sql' ),
-                       array( 'add_field', 'archive',       'ar_deleted',       'patch-ar_deleted.sql' ),
-                       array( 'add_field', 'ipblocks',      'ipb_deleted',      'patch-ipb_deleted.sql' ),
-                       array( 'add_field', 'filearchive',   'fa_deleted',       'patch-fa_deleted.sql' ),
-                       array( 'add_field', 'archive',       'ar_len',           'patch-ar_len.sql' ),
+                       array( 'addField', 'logging',       'log_id',           'patch-log_id.sql' ),
+                       array( 'addField', 'revision',      'rev_parent_id',    'patch-rev_parent_id.sql' ),
+                       array( 'addField', 'page_restrictions', 'pr_id',        'patch-page_restrictions_sortkey.sql' ),
+                       array( 'addField', 'revision',      'rev_len',          'patch-rev_len.sql' ),
+                       array( 'addField', 'recentchanges', 'rc_deleted',       'patch-rc_deleted.sql' ),
+                       array( 'addField', 'logging',       'log_deleted',      'patch-log_deleted.sql' ),
+                       array( 'addField', 'archive',       'ar_deleted',       'patch-ar_deleted.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_deleted',      'patch-ipb_deleted.sql' ),
+                       array( 'addField', 'filearchive',   'fa_deleted',       'patch-fa_deleted.sql' ),
+                       array( 'addField', 'archive',       'ar_len',           'patch-ar_len.sql' ),
 
                        // 1.11
-                       array( 'add_field', 'ipblocks',      'ipb_block_email',  'patch-ipb_emailban.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_block_email',  'patch-ipb_emailban.sql' ),
                        array( 'do_categorylinks_indices_update' ),
-                       array( 'add_field', 'oldimage',      'oi_metadata',      'patch-oi_metadata.sql' ),
+                       array( 'addField', 'oldimage',      'oi_metadata',      'patch-oi_metadata.sql' ),
                        array( 'do_archive_user_index' ),
                        array( 'do_image_user_index' ),
                        array( 'do_oldimage_user_index' ),
-                       array( 'add_field', 'archive',       'ar_page_id',       'patch-archive-page_id.sql' ),
-                       array( 'add_field', 'image',         'img_sha1',         'patch-img_sha1.sql' ),
+                       array( 'addField', 'archive',       'ar_page_id',       'patch-archive-page_id.sql' ),
+                       array( 'addField', 'image',         'img_sha1',         'patch-img_sha1.sql' ),
 
                        // 1.12
                        array( 'addTable', 'protected_titles',                  'patch-protected_titles.sql' ),
 
                        // 1.13
-                       array( 'add_field', 'ipblocks',      'ipb_by_text',      'patch-ipb_by_text.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_by_text',      'patch-ipb_by_text.sql' ),
                        array( 'addTable', 'page_props',                        'patch-page_props.sql' ),
                        array( 'addTable', 'updatelog',                         'patch-updatelog.sql' ),
                        array( 'addTable', 'category',                          'patch-category.sql' ),
                        array( 'do_category_population' ),
-                       array( 'add_field', 'archive',       'ar_parent_id',     'patch-ar_parent_id.sql' ),
-                       array( 'add_field', 'user_newtalk',  'user_last_timestamp', 'patch-user_last_timestamp.sql' ),
+                       array( 'addField', 'archive',       'ar_parent_id',     'patch-ar_parent_id.sql' ),
+                       array( 'addField', 'user_newtalk',  'user_last_timestamp', 'patch-user_last_timestamp.sql' ),
                        array( 'do_populate_parent_id' ),
                        array( 'check_bin', 'protected_titles', 'pt_title',      'patch-pt_title-encoding.sql', ),
                        array( 'maybe_do_profiling_memory_update' ),
                        array( 'do_filearchive_indices_update' ),
 
                        // 1.14
-                       array( 'add_field', 'site_stats',    'ss_active_users',  'patch-ss_active_users.sql' ),
+                       array( 'addField', 'site_stats',    'ss_active_users',  'patch-ss_active_users.sql' ),
                        array( 'do_active_users_init' ),
-                       array( 'add_field', 'ipblocks',      'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
 
                        // 1.15
                        array( 'do_unique_pl_tl_il' ),
@@ -140,12 +140,12 @@ class MysqlUpdater extends DatabaseUpdater {
                        array( 'addTable', 'user_properties',                   'patch-user_properties.sql' ),
                        array( 'addTable', 'log_search',                        'patch-log_search.sql' ),
                        array( 'do_log_search_population' ),
-                       array( 'add_field', 'logging',       'log_user_text',    'patch-log_user_text.sql' ),
+                       array( 'addField', 'logging',       'log_user_text',    'patch-log_user_text.sql' ),
                        array( 'addTable', 'l10n_cache',                        'patch-l10n_cache.sql' ),
                        array( 'addTable', 'external_user',                     'patch-external_user.sql' ),
-                       array( 'add_index', 'log_search',    'ls_field_val',     'patch-log_search-rename-index.sql' ),
-                       array( 'add_index', 'change_tag',    'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
-                       array( 'add_field', 'redirect',      'rd_interwiki',     'patch-rd_interwiki.sql' ),
+                       array( 'addIndex', 'log_search',    'ls_field_val',     'patch-log_search-rename-index.sql' ),
+                       array( 'addIndex', 'change_tag',    'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
+                       array( 'addField', 'redirect',      'rd_interwiki',     'patch-rd_interwiki.sql' ),
                        array( 'do_update_transcache_field' ),
                        array( 'rename_eu_wiki_id' ),
                        array( 'do_update_mime_minor_field' ),
@@ -153,12 +153,12 @@ class MysqlUpdater extends DatabaseUpdater {
 
                        // 1.17
                        array( 'addTable', 'iwlinks',                           'patch-iwlinks.sql' ),
-                       array( 'add_index', 'iwlinks', 'iwl_prefix_title_from',  'patch-rename-iwl_prefix.sql' ),
-                       array( 'add_field', 'updatelog', 'ul_value',              'patch-ul_value.sql' ),
-                       array( 'add_field', 'interwiki',     'iw_api',           'patch-iw_api_and_wikiid.sql' ),
+                       array( 'addIndex', 'iwlinks', 'iwl_prefix_title_from',  'patch-rename-iwl_prefix.sql' ),
+                       array( 'addField', 'updatelog', 'ul_value',              'patch-ul_value.sql' ),
+                       array( 'addField', 'interwiki',     'iw_api',           'patch-iw_api_and_wikiid.sql' ),
                        array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix',  'patch-kill-iwl_prefix.sql' ),
                        array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
-                       array( 'add_field', 'categorylinks', 'cl_collation', 'patch-categorylinks-better-collation.sql' ),
+                       array( 'addField', 'categorylinks', 'cl_collation', 'patch-categorylinks-better-collation.sql' ),
                        array( 'do_collation_update' ),
                );
        }
index c4b6771..86624e6 100644 (file)
@@ -11,9 +11,9 @@ class SqliteUpdater extends DatabaseUpdater {
        protected function getCoreUpdateList() {
                return array(
                        // 1.14
-                       array( 'add_field', 'site_stats',    'ss_active_users',  'patch-ss_active_users.sql' ),
+                       array( 'addField', 'site_stats',    'ss_active_users',  'patch-ss_active_users.sql' ),
                        array( 'do_active_users_init' ),
-                       array( 'add_field', 'ipblocks',      'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
+                       array( 'addField', 'ipblocks',      'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
                        array( 'sqlite_initial_indexes' ),
 
                        // 1.15
@@ -25,20 +25,20 @@ class SqliteUpdater extends DatabaseUpdater {
                        array( 'addTable', 'user_properties',                   'patch-user_properties.sql' ),
                        array( 'addTable', 'log_search',                        'patch-log_search.sql' ),
                        array( 'do_log_search_population' ),
-                       array( 'add_field', 'logging',       'log_user_text',    'patch-log_user_text.sql' ),
+                       array( 'addField', 'logging',       'log_user_text',    'patch-log_user_text.sql' ),
                        array( 'addTable', 'l10n_cache',                        'patch-l10n_cache.sql' ),
                        array( 'addTable', 'external_user',                     'patch-external_user.sql' ),
-                       array( 'add_index', 'log_search',    'ls_field_val',     'patch-log_search-rename-index.sql' ),
-                       array( 'add_index', 'change_tag',    'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
-                       array( 'add_field', 'redirect',      'rd_interwiki',     'patch-rd_interwiki.sql' ),
+                       array( 'addIndex', 'log_search',    'ls_field_val',     'patch-log_search-rename-index.sql' ),
+                       array( 'addIndex', 'change_tag',    'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
+                       array( 'addField', 'redirect',      'rd_interwiki',     'patch-rd_interwiki.sql' ),
                        array( 'do_update_transcache_field' ),
                        array( 'sqlite_setup_searchindex' ),
 
                        // 1.17
                        array( 'addTable', 'iwlinks',                            'patch-iwlinks.sql' ),
-                       array( 'add_index', 'iwlinks',   'iwl_prefix_title_from', 'patch-rename-iwl_prefix.sql' ),
-                       array( 'add_field', 'updatelog', 'ul_value',              'patch-ul_value.sql' ),
-                       array( 'add_field', 'interwiki',     'iw_api',           'patch-iw_api_and_wikiid.sql' ),
+                       array( 'addIndex', 'iwlinks',   'iwl_prefix_title_from', 'patch-rename-iwl_prefix.sql' ),
+                       array( 'addField', 'updatelog', 'ul_value',              'patch-ul_value.sql' ),
+                       array( 'addField', 'interwiki',     'iw_api',           'patch-iw_api_and_wikiid.sql' ),
                        array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix',  'patch-kill-iwl_prefix.sql' ),
                        array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
                );
index e941f65..5fb727a 100644 (file)
@@ -60,38 +60,6 @@ function modify_field( $table, $field, $patch, $fullpath = false ) {
        }
 }
 
-function add_field( $table, $field, $patch, $fullpath = false ) {
-       global $wgDatabase;
-       if ( !$wgDatabase->tableExists( $table ) ) {
-               wfOut( "...$table table does not exist, skipping new field patch\n" );
-       } elseif ( $wgDatabase->fieldExists( $table, $field ) ) {
-               wfOut( "...have $field field in $table table.\n" );
-       } else {
-               wfOut( "Adding $field field to table $table..." );
-               if ( $fullpath ) {
-                       $wgDatabase->sourceFile( $patch );
-               } else {
-                       $wgDatabase->sourceFile( archive( $patch ) );
-               }
-               wfOut( "ok\n" );
-       }
-}
-
-function add_index( $table, $index, $patch, $fullpath = false ) {
-       global $wgDatabase;
-       if ( $wgDatabase->indexExists( $table, $index ) ) {
-               wfOut( "...$index key already set on $table table.\n" );
-       } else {
-               wfOut( "Adding $index key to table $table... " );
-               if ( $fullpath ) {
-                       $wgDatabase->sourceFile( $patch );
-               } else {
-                       $wgDatabase->sourceFile( archive( $patch ) );
-               }
-               wfOut( "ok\n" );
-       }
-}
-
 function drop_index_if_exists( $table, $index, $patch, $fullpath = false ) {
        global $wgDatabase;
        if ( $wgDatabase->indexExists( $table, $index ) ) {