From 9958d84dca7e7e304ec966e7fe1097936a8b58cd Mon Sep 17 00:00:00 2001 From: Sam Reed Date: Tue, 25 May 2010 20:37:20 +0000 Subject: [PATCH] Followup to r65105 after discussion with Roan Make the non-unique index index all fields Patches updated, patch created to update index. Table.sql also updated --- maintenance/archives/patch-iwlinks.sql | 2 +- maintenance/archives/patch-rename-iwl_prefix.sql | 5 +++++ maintenance/tables.sql | 2 +- maintenance/updaters.inc | 16 ++++++++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 maintenance/archives/patch-rename-iwl_prefix.sql diff --git a/maintenance/archives/patch-iwlinks.sql b/maintenance/archives/patch-iwlinks.sql index 463c7b3dc8..c1c2595e62 100644 --- a/maintenance/archives/patch-iwlinks.sql +++ b/maintenance/archives/patch-iwlinks.sql @@ -13,4 +13,4 @@ CREATE TABLE /*_*/iwlinks ( ) /*$wgDBTableOptions*/; CREATE UNIQUE INDEX /*i*/iwl_from ON /*_*/iwlinks (iwl_from, iwl_prefix, iwl_title); -CREATE INDEX /*i*/iwl_prefix ON /*_*/iwlinks (iwl_prefix, iwl_title); +CREATE INDEX /*i*/iwl_prefix_from_title ON /*_*/iwlinks (iwl_prefix, iwl_from, iwl_title); diff --git a/maintenance/archives/patch-rename-iwl_prefix.sql b/maintenance/archives/patch-rename-iwl_prefix.sql new file mode 100644 index 0000000000..df360299e6 --- /dev/null +++ b/maintenance/archives/patch-rename-iwl_prefix.sql @@ -0,0 +1,5 @@ +-- +-- Recreates the iwl_prefix for the iwlinks table +-- +DROP INDEX /*i*/iwl_prefix ON /*_*/iwlinks; +CREATE INDEX /*i*/iwl_prefix_from_title ON /*_*/iwlinks (iwl_prefix, iwl_from, iwl_title); \ No newline at end of file diff --git a/maintenance/tables.sql b/maintenance/tables.sql index c9450b5d89..fe6f265810 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -623,7 +623,7 @@ CREATE TABLE /*_*/iwlinks ( ) /*$wgDBTableOptions*/; CREATE UNIQUE INDEX /*i*/iwl_from ON /*_*/iwlinks (iwl_from, iwl_prefix, iwl_title); -CREATE INDEX /*i*/iwl_prefix ON /*_*/iwlinks (iwl_prefix, iwl_title); +CREATE INDEX /*i*/iwl_prefix_from_title ON /*_*/iwlinks (iwl_prefix, iwl_from, iwl_title); -- diff --git a/maintenance/updaters.inc b/maintenance/updaters.inc index 185e0b4376..5188e3fa86 100644 --- a/maintenance/updaters.inc +++ b/maintenance/updaters.inc @@ -205,6 +205,7 @@ $wgUpdates = array( // 1.17 array( 'add_table', 'iwlinks', 'patch-iwlinks.sql' ), + array( 'add_index', 'iwlinks', 'iwl_prefix', 'patch-rename-iwl_prefix.sql' ), ), ); @@ -315,6 +316,21 @@ function add_index( $table, $index, $patch, $fullpath = false ) { } } +function drop_index_if_exists( $table, $index, $patch, $fullpath = false ) { + global $wgDatabase; + if ( $wgDatabase->indexExists( $table, $index ) ) { + wfOut( "Dropping $index from table $table... " ); + if ( $fullpath ) { + $wgDatabase->sourceFile( $patch ); + } else { + $wgDatabase->sourceFile( archive( $patch ) ); + } + wfOut( "ok\n" ); + } else { + wfOut( "...$index doesn't exist.\n" ); + } +} + function do_interwiki_update() { # Check that interwiki table exists; if it doesn't source it global $wgDatabase, $IP; -- 2.20.1