From 222b01f5169f1c7e69762e0e8904c24f78f71882 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 28 Jul 2010 11:52:48 +0200 Subject: update to MediaWiki 1.16.0 --- maintenance/archives/patch-change_tag-indexes.sql | 21 ++++ maintenance/archives/patch-eu_local_id.sql | 3 + maintenance/archives/patch-external_user.sql | 9 ++ .../archives/patch-filearchive-user-index.sql | 5 + .../archives/patch-filearhive-user-index.sql | 5 - maintenance/archives/patch-job.sql | 18 +-- maintenance/archives/patch-l10n_cache.sql | 8 ++ .../archives/patch-log_search-rename-index.sql | 7 ++ maintenance/archives/patch-log_search.sql | 10 ++ maintenance/archives/patch-log_user_text.sql | 5 +- maintenance/archives/patch-mime_minor_length.sql | 10 ++ maintenance/archives/patch-rd_interwiki.sql | 6 + maintenance/archives/patch-tc-timestamp.sql | 4 + maintenance/archives/patch-transcache.sql | 2 +- maintenance/archives/patch-user_properties.sql | 22 ++++ maintenance/archives/populateSha1.php | 59 ---------- maintenance/archives/rebuildRecentchanges.inc | 123 --------------------- maintenance/archives/upgradeWatchlist.php | 67 ----------- 18 files changed, 118 insertions(+), 266 deletions(-) create mode 100644 maintenance/archives/patch-change_tag-indexes.sql create mode 100644 maintenance/archives/patch-eu_local_id.sql create mode 100644 maintenance/archives/patch-external_user.sql create mode 100644 maintenance/archives/patch-filearchive-user-index.sql delete mode 100644 maintenance/archives/patch-filearhive-user-index.sql create mode 100644 maintenance/archives/patch-l10n_cache.sql create mode 100644 maintenance/archives/patch-log_search-rename-index.sql create mode 100644 maintenance/archives/patch-log_search.sql create mode 100644 maintenance/archives/patch-mime_minor_length.sql create mode 100644 maintenance/archives/patch-rd_interwiki.sql create mode 100644 maintenance/archives/patch-tc-timestamp.sql create mode 100644 maintenance/archives/patch-user_properties.sql delete mode 100644 maintenance/archives/populateSha1.php delete mode 100644 maintenance/archives/rebuildRecentchanges.inc delete mode 100644 maintenance/archives/upgradeWatchlist.php (limited to 'maintenance/archives') diff --git a/maintenance/archives/patch-change_tag-indexes.sql b/maintenance/archives/patch-change_tag-indexes.sql new file mode 100644 index 00000000..9f8d8f80 --- /dev/null +++ b/maintenance/archives/patch-change_tag-indexes.sql @@ -0,0 +1,21 @@ +-- +-- Rename indexes on change_tag from implicit to explicit names +-- + +DROP INDEX ct_rc_id ON /*_*/change_tag; +DROP INDEX ct_log_id ON /*_*/change_tag; +DROP INDEX ct_rev_id ON /*_*/change_tag; +DROP INDEX ct_tag ON /*_*/change_tag; + +DROP INDEX ts_rc_id ON /*_*/tag_summary; +DROP INDEX ts_log_id ON /*_*/tag_summary; +DROP INDEX ts_rev_id ON /*_*/tag_summary; + +CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag); +CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag); +CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag); +CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id); + +CREATE UNIQUE INDEX /*i*/tag_summary_rc_id ON /*_*/tag_summary (ts_rc_id); +CREATE UNIQUE INDEX /*i*/tag_summary_log_id ON /*_*/tag_summary (ts_log_id); +CREATE UNIQUE INDEX /*i*/tag_summary_rev_id ON /*_*/tag_summary (ts_rev_id); diff --git a/maintenance/archives/patch-eu_local_id.sql b/maintenance/archives/patch-eu_local_id.sql new file mode 100644 index 00000000..bb59d067 --- /dev/null +++ b/maintenance/archives/patch-eu_local_id.sql @@ -0,0 +1,3 @@ +ALTER TABLE /*_*/external_user +CHANGE COLUMN eu_wiki_id +eu_local_id int unsigned NOT NULL; diff --git a/maintenance/archives/patch-external_user.sql b/maintenance/archives/patch-external_user.sql new file mode 100644 index 00000000..176b46d4 --- /dev/null +++ b/maintenance/archives/patch-external_user.sql @@ -0,0 +1,9 @@ +CREATE TABLE /*_*/external_user ( + -- Foreign key to user_id + eu_local_id int unsigned NOT NULL PRIMARY KEY, + + -- Some opaque identifier provided by the external database + eu_external_id varchar(255) binary NOT NULL +) /*$wgDBTableOptions*/; + +CREATE UNIQUE INDEX /*i*/eu_external_id ON /*_*/external_user (eu_external_id); diff --git a/maintenance/archives/patch-filearchive-user-index.sql b/maintenance/archives/patch-filearchive-user-index.sql new file mode 100644 index 00000000..c79000ad --- /dev/null +++ b/maintenance/archives/patch-filearchive-user-index.sql @@ -0,0 +1,5 @@ +-- Adding index to sort by uploader +ALTER TABLE /*$wgDBprefix*/filearchive + ADD INDEX fa_user_timestamp (fa_user_text,fa_timestamp), + -- Remove useless, incomplete index + DROP INDEX fa_deleted_user; diff --git a/maintenance/archives/patch-filearhive-user-index.sql b/maintenance/archives/patch-filearhive-user-index.sql deleted file mode 100644 index c79000ad..00000000 --- a/maintenance/archives/patch-filearhive-user-index.sql +++ /dev/null @@ -1,5 +0,0 @@ --- Adding index to sort by uploader -ALTER TABLE /*$wgDBprefix*/filearchive - ADD INDEX fa_user_timestamp (fa_user_text,fa_timestamp), - -- Remove useless, incomplete index - DROP INDEX fa_deleted_user; diff --git a/maintenance/archives/patch-job.sql b/maintenance/archives/patch-job.sql index a1f9094f..c9199efb 100644 --- a/maintenance/archives/patch-job.sql +++ b/maintenance/archives/patch-job.sql @@ -1,9 +1,9 @@ - -- Jobs performed by parallel apache threads or a command-line daemon -CREATE TABLE /*$wgDBprefix*/job ( - job_id int unsigned NOT NULL auto_increment, +CREATE TABLE /*_*/job ( + job_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT, - -- Command name, currently only refreshLinks is defined + -- Command name + -- Limited to 60 to prevent key length overflow job_cmd varbinary(60) NOT NULL default '', -- Namespace and title to act on @@ -12,9 +12,9 @@ CREATE TABLE /*$wgDBprefix*/job ( job_title varchar(255) binary NOT NULL, -- Any other parameters to the command - -- Presently unused, format undefined - job_params blob NOT NULL, - - PRIMARY KEY job_id (job_id), - KEY (job_cmd, job_namespace, job_title) + -- Stored as a PHP serialized array, or an empty string if there are no parameters + job_params blob NOT NULL ) /*$wgDBTableOptions*/; + +CREATE INDEX /*i*/job_cmd ON /*_*/job (job_cmd, job_namespace, job_title, job_params(128)); + diff --git a/maintenance/archives/patch-l10n_cache.sql b/maintenance/archives/patch-l10n_cache.sql new file mode 100644 index 00000000..4c865d71 --- /dev/null +++ b/maintenance/archives/patch-l10n_cache.sql @@ -0,0 +1,8 @@ +-- Table for storing localisation data +CREATE TABLE /*_*/l10n_cache ( + lc_lang varbinary(32) NOT NULL, + lc_key varchar(255) NOT NULL, + lc_value mediumblob NOT NULL +) /*$wgDBTableOptions*/; +CREATE INDEX /*i*/lc_lang_key ON /*_*/l10n_cache (lc_lang, lc_key); + diff --git a/maintenance/archives/patch-log_search-rename-index.sql b/maintenance/archives/patch-log_search-rename-index.sql new file mode 100644 index 00000000..41e051d8 --- /dev/null +++ b/maintenance/archives/patch-log_search-rename-index.sql @@ -0,0 +1,7 @@ +-- Rename the primary unique index from PRIMARY to ls_field_val +-- This is for MySQL only and is necessary only for databases which were updated +-- between MW 1.16 development revisions r50567 and r51465. +ALTER TABLE /*_*/log_search + DROP PRIMARY KEY, + ADD UNIQUE INDEX ls_field_val (ls_field,ls_value,ls_log_id); + diff --git a/maintenance/archives/patch-log_search.sql b/maintenance/archives/patch-log_search.sql new file mode 100644 index 00000000..8d92030b --- /dev/null +++ b/maintenance/archives/patch-log_search.sql @@ -0,0 +1,10 @@ +CREATE TABLE /*_*/log_search ( + -- The type of ID (rev ID, log ID, rev timestamp, username) + ls_field varbinary(32) NOT NULL, + -- The value of the ID + ls_value varchar(255) NOT NULL, + -- Key to log_id + ls_log_id int unsigned NOT NULL default 0 +) /*$wgDBTableOptions*/; +CREATE UNIQUE INDEX /*i*/ls_field_val ON /*_*/log_search (ls_field,ls_value,ls_log_id); +CREATE INDEX /*i*/ls_log_id ON /*_*/log_search (ls_log_id); diff --git a/maintenance/archives/patch-log_user_text.sql b/maintenance/archives/patch-log_user_text.sql index dffbe8be..9a783d87 100644 --- a/maintenance/archives/patch-log_user_text.sql +++ b/maintenance/archives/patch-log_user_text.sql @@ -1,7 +1,8 @@ ALTER TABLE /*$wgDBprefix*/logging ADD log_user_text varchar(255) binary NOT NULL default '', - ADD log_target_id int unsigned NULL, + ADD log_page int unsigned NULL, CHANGE log_type log_type varbinary(32) NOT NULL, CHANGE log_action log_action varbinary(32) NOT NULL; -CREATE INDEX /*i*/user_type_time ON /*_*/logging (log_user, log_type, log_timestamp); +CREATE INDEX /*i*/log_user_type_time ON /*_*/logging (log_user, log_type, log_timestamp); +CREATE INDEX /*i*/log_page_id_time ON /*_*/logging (log_page,log_timestamp); diff --git a/maintenance/archives/patch-mime_minor_length.sql b/maintenance/archives/patch-mime_minor_length.sql new file mode 100644 index 00000000..3a3c5c4f --- /dev/null +++ b/maintenance/archives/patch-mime_minor_length.sql @@ -0,0 +1,10 @@ +ALTER TABLE /*_*/filearchive + MODIFY COLUMN fa_minor_mime varbinary(100) default "unknown"; + +ALTER TABLE /*_*/image + MODIFY COLUMN img_minor_mime varbinary(100) NOT NULL default "unknown"; + +ALTER TABLE /*_*/oldimage + MODIFY COLUMN oi_minor_mime varbinary(100) NOT NULL default "unknown"; + +INSERT INTO /*_*/updatelog VALUES ('mime_minor_length'); \ No newline at end of file diff --git a/maintenance/archives/patch-rd_interwiki.sql b/maintenance/archives/patch-rd_interwiki.sql new file mode 100644 index 00000000..a12f1a7d --- /dev/null +++ b/maintenance/archives/patch-rd_interwiki.sql @@ -0,0 +1,6 @@ +-- Add interwiki and fragment columns to redirect table + +ALTER TABLE /*$wgDBprefix*/redirect + ADD rd_interwiki varchar(32) default NULL, + ADD rd_fragment varchar(255) binary default NULL; + diff --git a/maintenance/archives/patch-tc-timestamp.sql b/maintenance/archives/patch-tc-timestamp.sql new file mode 100644 index 00000000..4d90cf34 --- /dev/null +++ b/maintenance/archives/patch-tc-timestamp.sql @@ -0,0 +1,4 @@ +ALTER TABLE /*_*/transcache MODIFY tc_time binary(14); +UPDATE /*_*/transcache SET tc_time = DATE_FORMAT(FROM_UNIXTIME(tc_time), "%Y%c%d%H%i%s"); + +INSERT INTO /*_*/updatelog VALUES ('convert transcache field'); diff --git a/maintenance/archives/patch-transcache.sql b/maintenance/archives/patch-transcache.sql index d0731697..70870efa 100644 --- a/maintenance/archives/patch-transcache.sql +++ b/maintenance/archives/patch-transcache.sql @@ -1,7 +1,7 @@ CREATE TABLE /*$wgDBprefix*/transcache ( tc_url varbinary(255) NOT NULL, tc_contents TEXT, - tc_time INT NOT NULL, + tc_time binary(14) NOT NULL, UNIQUE INDEX tc_url_idx(tc_url) ) /*$wgDBTableOptions*/; diff --git a/maintenance/archives/patch-user_properties.sql b/maintenance/archives/patch-user_properties.sql new file mode 100644 index 00000000..e30e00dc --- /dev/null +++ b/maintenance/archives/patch-user_properties.sql @@ -0,0 +1,22 @@ +-- +-- User preferences and perhaps other fun stuff. :) +-- Replaces the old user.user_options blob, with a couple nice properties: +-- +-- 1) We only store non-default settings, so changes to the defauls +-- are now reflected for everybody, not just new accounts. +-- 2) We can more easily do bulk lookups, statistics, or modifications of +-- saved options since it's a sane table structure. +-- +CREATE TABLE /*_*/user_properties( + -- Foreign key to user.user_id + up_user int not null, + + -- Name of the option being saved. This is indexed for bulk lookup. + up_property varbinary(32) not null, + + -- Property value as a string. + up_value blob +) /*$wgDBTableOptions*/; + +CREATE UNIQUE INDEX /*i*/user_properties_user_property on /*_*/user_properties (up_user,up_property); +CREATE INDEX /*i*/user_properties_property on /*_*/user_properties (up_property); diff --git a/maintenance/archives/populateSha1.php b/maintenance/archives/populateSha1.php deleted file mode 100644 index 487d3bad..00000000 --- a/maintenance/archives/populateSha1.php +++ /dev/null @@ -1,59 +0,0 @@ -select( 'image', array( 'img_name' ), array( 'img_sha1' => '' ), $fname ); -$imageTable = $dbw->tableName( 'image' ); -$oldimageTable = $dbw->tableName( 'oldimage' ); -$batch = array(); - -$cmd = 'mysql -u' . wfEscapeShellArg( $wgDBuser ) . - ' -h' . wfEscapeShellArg( $wgDBserver ) . - ' -p' . wfEscapeShellArg( $wgDBpassword, $wgDBname ); -if ( $method == 'pipe' ) { - echo "Using pipe method\n"; - $pipe = popen( $cmd, 'w' ); -} - -$numRows = $res->numRows(); -$i = 0; -foreach ( $res as $row ) { - if ( $i % 100 == 0 ) { - printf( "Done %d of %d, %5.3f%% \r", $i, $numRows, $i / $numRows * 100 ); - wfWaitForSlaves( 5 ); - } - $file = wfLocalFile( $row->img_name ); - if ( !$file ) { - continue; - } - $sha1 = File::sha1Base36( $file->getPath() ); - if ( strval( $sha1 ) !== '' ) { - $sql = "UPDATE $imageTable SET img_sha1=" . $dbw->addQuotes( $sha1 ) . - " WHERE img_name=" . $dbw->addQuotes( $row->img_name ); - if ( $method == 'pipe' ) { - fwrite( $pipe, "$sql;\n" ); - } else { - $dbw->query( $sql, $fname ); - } - } - $i++; -} -if ( $method == 'pipe' ) { - fflush( $pipe ); - pclose( $pipe ); -} -$t += microtime( true ); -printf( "\nDone %d files in %.1f seconds\n", $numRows, $t ); - -?> diff --git a/maintenance/archives/rebuildRecentchanges.inc b/maintenance/archives/rebuildRecentchanges.inc deleted file mode 100644 index 65ba560c..00000000 --- a/maintenance/archives/rebuildRecentchanges.inc +++ /dev/null @@ -1,123 +0,0 @@ -rc_timestamp; - - $sql = "DELETE FROM recentchanges WHERE rc_timestamp < '{$ts}'"; - wfQuery( $sql ); - - rebuildRecentChangesTablePass2(); -} - -function rebuildRecentChangesTablePass2() -{ - $ns = $id = $count = 0; - $title = $ct = ""; - - print( "Updating links...\n" ); - - $sql = "SELECT rc_namespace,rc_title,rc_timestamp FROM recentchanges " . - "ORDER BY rc_namespace,rc_title,rc_timestamp DESC"; - $res = wfQuery( $sql ); - - while ( $obj = wfFetchObject( $res ) ) { - if ( ! ( $ns == $obj->rc_namespace && - 0 == strcmp( $title, wfStrencode( $obj->rc_title ) ) ) ) { - - $ns = $obj->rc_namespace; - $title = wfStrencode( $obj->rc_title ); - - $sql = "SELECT cur_id,cur_timestamp FROM cur WHERE " . - "cur_namespace={$ns} AND cur_title='{$title}'"; - $res2 = wfQuery( $sql ); - $obj2 = wfFetchObject( $res2 ); - - $id = $obj2->cur_id; - $ct = $obj2->cur_timestamp; - } - $sql = "SELECT old_id FROM old WHERE old_namespace={$ns} " . - "AND old_title='{$title}' AND old_timestamp < '" . - "{$obj->rc_timestamp}' ORDER BY old_timestamp DESC LIMIT 1"; - $res2 = wfQuery( $sql ); - - if ( 0 != wfNumRows( $res2 ) ) { - $obj2 = wfFetchObject( $res2 ); - - $sql = "UPDATE recentchanges SET rc_cur_id={$id},rc_cur_time=" . - "'{$ct}',rc_last_oldid={$obj2->old_id} WHERE " . - "rc_namespace={$ns} AND rc_title='{$title}' AND " . - "rc_timestamp='{$obj->rc_timestamp}'"; - wfQuery( $sql ); - } else { - $sql = "UPDATE recentchanges SET rc_cur_id={$id},rc_cur_time=" . - "'{$ct}' WHERE rc_namespace={$ns} AND rc_title='{$title}' " . - "AND rc_timestamp='{$obj->rc_timestamp}'"; - wfQuery( $sql ); - } - - if ( 0 == ( ++$count % 500 ) ) { - printf( "%d records processed.\n", $count ); - } - } -} - - -?> diff --git a/maintenance/archives/upgradeWatchlist.php b/maintenance/archives/upgradeWatchlist.php deleted file mode 100644 index 9788aa56..00000000 --- a/maintenance/archives/upgradeWatchlist.php +++ /dev/null @@ -1,67 +0,0 @@ -user_watch ); - $bits = array(); - foreach( $list as $title ) { - if( $id = $lc->addLink( $title ) and ! $bits[$id]++) { - $sql .= ($i++ ? "," : "") . "({$row->user_id},{$id})"; - } - } - if( ($n++ % 100) == 0 ) echo "$n of $nu users done...\n"; -} -echo "$n users done.\n"; -if( $i ) { - wfQuery( $sql, DB_MASTER ); -} - - -# Add index -# is this necessary? -$sql = "ALTER TABLE watchlist - ADD INDEX wl_user (wl_user), - ADD INDEX wl_page (wl_page)"; -#wfQuery( $sql, DB_MASTER ); - - -- cgit v1.2.2